Ich habe diesen Code geschrieben, um eine Eingabeaufforderung anzuzeigen, bevor ein Formular gesendet wird. Wenn der Wert der Formulareingabe größer als 100 ist, wird ein Dialogfeld angezeigt, in dem der Benutzer ungefähr darüber informiert wird, wie lange die Verarbeitung dauert. Wenn sie auf "OK" klicken, sollte sie "true" zurückgeben und das Formular senden. Wenn sie auf "Abbrechen" klicken, sollte sie "false" zurückgeben und das Formular nicht senden.jQuery JavaScript wird nicht richtig/falsch zurückgegeben
Das Problem ist, dass das Formular nicht auf diese Antwort wartet, es wird trotzdem übermittelt. Ich kann nicht herausfinden, was los ist ...
Hier ist der Code:
$(document).ready(function() {
$("form#generate_vouchers").submit(function(){
if($("input#quantity").val() > 100){
var warning = "It will take around " + Math.round(($("input#quantity").val()/23)) + " seconds to generate this batch.<br />Generation will continue even if you leave this page.";
//Does around 23 codes per second, nearly all of that time is inserts.
$('<div title="Batch information"></div>').html(warning).dialog({
draggable: false,
modal: true,
minWidth: 350,
buttons: {
"Cancel" : function() {
$(this).dialog("close");
return false;
},
"Yes": function() {
$("input#submit").hide(300, function(){
$("img#loader").show(300);
});
return true;
}
}
});
}
else{
$("input#submit").hide(300, function(){
$("img#loader").show(300);
});
}
});
});
Verwendung 'e.preventDefault()' und 'Rückkehr false' Kombination ... – Val