preventDefault() submitting form
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" n开发者_开发知识库ame="submit" value="Submit" onClick="checkSubmitStatus()">
Thanks!
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>
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();
}
});
You can just drop the checkSubmitStatus()
function.
$("#myform").submit(function(event){
if(whatever == true) {
event.preventDefault();
}
});
Also drop this:
onClick="checkSubmitStatus()"
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()">
I would refactor this slightly...
function checkSubmitStatus() {
if( whatever==true) {
return false;
}
return true;
}
<input type="submit" name="submit" value="Submit" onClick="return checkSubmitStatus()">
let button = document.getElementById('submit');
button.addEventListener('click', function(event) {
event.preventDefault();
this.innerHTML = "Button clicked!";
});
精彩评论