Contining after preventDefault
by spring1975
HTML
<form id="MyForm">
<input type="text" value="none" />
<input type="submit" id="DelayedSubmit" value="Delayed Submit Me" />
<input type="submit" id="ConfirmMe" value="Confirm Me" />
<div id="Buttons">
<a href="javascript:WriteMe('one')">one</a>
<a href="javascript:WriteMe('two')">two</a>
</div>
<a href="#" id="On">On</a>
<a href="#" id="Off">Off</a>
</form>
JavaScript
function WriteMe(message){
$('#MyForm').append($('<div>').text(message));
}
$('document').ready(function(){
$('#ConfirmMe').on('click', function(e) {
var okToSubmit = !!$('#MyForm').data('OKToSubmit');
if (!okToSubmit){
e.preventDefault();
setTimeout(function working() {
//This won't actually trigger the
$('#MyForm').data('OKToSubmit', true).trigger('submit');
}, 2000 );
}
});
$('#ConfirmMe').on('click', function(e){
if (confirm("Are you sure you want to delete all images from this case?")) {
return true;
//$('#MyForm').data('OKToSubmit', true).trigger('submit');
} else {
return false;
}
});
var lots_of_stuff_already_done = false;
$('#Buttons a').on('click', preventMyClickViaDataAttribute);
function preventMyClickViaGlobalFlag(e) {
if (!lots_of_stuff_already_done === true) {
e.preventDefault();
lots_of_stuff_already_done = true; // set flag
//triggering or otherwise calling a click never works, once preventDefault has been called.
$(this).click();
//$(this).trigger('click');
//$('#Buttons a:first').click();
} else {
lots_of_stuff_already_done = false; // reset flag
}
// do lots of stuff
}
function preventMyClickViaDataAttribute(e) {
var $this = $(this),
okToSubmit = !!$this.data('OKToSubmit');
if (!okToSubmit){
e.preventDefault();
setTimeout(function working() {
$this.unbind('click', preventMyClickViaDataAttribute);
$this.trigger('click');
}, 1000 );
} else {
//Go for it
}
}
$('#On').on('click', function() {
$('#Buttons a').data('OKToSubmit', 'true');
});
$('#Off').on('click', function() {
$('#Buttons...