フォームを送信する前にプロンプトを表示するためにこのコードを記述しました。フォーム入力の値が100より大きい場合は、処理にどれくらいの時間がかかるかをユーザーに知らせるダイアログが表示されます。 「OK」をクリックするとtrueを返し、フォームを送信します。キャンセルをクリックするとfalseを返し、フォームを送信しません。jQuery javascriptが正しくtrue/falseを返さない
フォームはこの応答を待っているわけではありませんが、とにかく送信しています。対話実行を停止し、それが閉じられるまで待機しない表示
$(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);
});
}
});
});
使用 'e.preventDefault()'と 'false'の組み合わせを返す... – Val