jQuery
and a small variation of @Joepreludian's answer above:.one(...)
instead on .on(...) or .submit(...)
named
function instead of anonymous function
since we will be referring it within the callback
.$('form#my-form').one('submit', function myFormSubmitCallback(evt) {
evt.stopPropagation();
evt.preventDefault();
var $this = $(this);
if (allIsWell) {
$this.submit(); // submit the form and it will not re-enter the callback because we have worked with .one(...)
} else {
$this.one('submit', myFormSubmitCallback); // lets get into the callback 'one' more time...
}
});
allIsWell
variable in the below snippet to true
or false
to test the functionality:$('form#my-form').one('submit', function myFormSubmitCallback(evt){_x000D_
evt.stopPropagation();_x000D_
evt.preventDefault();_x000D_
var $this = $(this);_x000D_
var allIsWell = $('#allIsWell').get(0).checked;_x000D_
if(allIsWell) {_x000D_
$this.submit();_x000D_
} else {_x000D_
$this.one('submit', myFormSubmitCallback);_x000D_
}_x000D_
});
_x000D_
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>_x000D_
<form action="/" id="my-form">_x000D_
<input name="./fname" value="John" />_x000D_
<input name="./lname" value="Smith" />_x000D_
<input type="submit" value="Lets Do This!" />_x000D_
<br>_x000D_
<label>_x000D_
<input type="checkbox" value="true" id="allIsWell" />_x000D_
All Is Well_x000D_
</label>_x000D_
</form>
_x000D_
Good Luck...