Reputation: 1771
I am fairly new to jQuery and JavaScript in general.
I have a form, and what I want to do it have the form run a function to make sure everything is there, and all the variables are correct then submit.
I have used onclick
value to the submit button and have it run a function that uses preventDefault()
. I am not sure if im using it correctly but it doesn't seem to be working.
This is what I have and when you click submit, it just submits even if the if statement is false.
function checkSubmitStatus() {
$("#myform").submit(function(event){
if( whatever==true) {
event.preventDefault();
}
});
}
<input type="submit" name="submit" value="Submit" onClick="checkSubmitStatus()">
Thanks!
Upvotes: 9
Views: 54729
Reputation: 1
let button = document.getElementById('submit');
button.addEventListener('click', function(event) {
event.preventDefault();
this.innerHTML = "Button clicked!";
});
Upvotes: -1
Reputation: 92893
By putting $("#myform").submit(...)
inside the checkSubmitStatus()
function, you're attaching the submit handler after the button is clicked and the form is already submitted. Try this:
<script type="text/javascript">
$(document).ready(function() {
$("#myform").submit(function(event){
if(whatever) {
event.preventDefault();
}
});
});
</script>
<form id="myform">
<input type="submit" name="submit" value="Submit">
</form>
Upvotes: 18
Reputation: 72652
You can just drop the checkSubmitStatus()
function.
$("#myform").submit(function(event){
if(whatever == true) {
event.preventDefault();
}
});
Also drop this:
onClick="checkSubmitStatus()"
Upvotes: 3
Reputation: 50966
Change
<input type="submit" name="submit" value="Submit" onClick="checkSubmitStatus()">
to
<input type="submit" name="submit" value="Submit" >
and change your javascript to
$("#myform").submit(function(event){
if( whatever==true)
{
event.preventDefault();
}
});
Upvotes: 9
Reputation: 13475
I would refactor this slightly...
function checkSubmitStatus() {
if( whatever==true) {
return false;
}
return true;
}
<input type="submit" name="submit" value="Submit" onClick="return checkSubmitStatus()">
Upvotes: 1
Reputation: 1769
In the onclick event handler, if you return false the form will not submit. Try doing this:
function checkSubmitStatus() {
if(validationSuccess==true)
{
return true;
}
else
{
return false;
}
}
<input type="submit" name="submit" value="Submit" onClick="return checkSubmitStatus()">
Upvotes: 3