確認がtrueの場合、別のjQueryの関数を呼び出します
質問
私は確認がtrueの場合、別のjQueryの関数を呼び出すようにしようとしている、ここでのコードです:
jQuery("#adminForm_1").submit(function () {
var empty = false;
jQuery(":input", "#adminForm_1").each(function () {
empty = (jQuery(this).val() == "") ? true : empty;
});
if (empty) {
if (confirm('You have not filled out all of the fields, do you wish to continue?')) {
jQuery("#adminForm_1").validationEngine({
ajaxSubmit: true,
ajaxSubmitFile: "/index.php?option=com_database&view=tripdetails&Itemid=12&client=1&task=save",
ajaxSubmitMessage: "Client Trip Details Saved",
inlineValidation: false,
success: false,
failure: function () {}
});
} else {
return false;
};
}
});
^^上記のコードは動作しませんが、あなたは私が何をしようとしているがわかります..
解決
あなたは伝統的な方法でそれをサーバーに提出することで、フォーム、上のブラウザのデフォルトのアクションを阻止する必要があります。終わりのどちらかreturn false
ハンドラを提出、または先頭にe.preventDefault()
を入れます:
jQuery("#adminForm_1").submit(function (e) {
e.preventDefault();
...
または
jQuery("#adminForm_1").submit(function () {
var empty = false;
jQuery(":input", "#adminForm_1").each(function () {
empty = (jQuery(this).val() == "") ? true : empty;
});
if (empty) {
if (confirm('You have not filled out all of the fields, do you wish to continue?')) {
...
});
}
}
return false;
});
を参照してください。 preventDefault
するます:
の実行からブラウザを防ぎ デフォルトのアクション。メソッドを使用します かどうかを知るためにisDefaultPrevented この方法は、これまでその上で(呼ばれました イベントオブジェクト)。
サイドノートreturn false
がpreventDefault
と同じ効果があり、プラス、それは親要素にイベントのバブリングを停止しています。これを達成するためのjQueryのメカニズムは、のstopPropagation の方法です。換言すれば、return false
= e.preventDefault + e.stopPropagation
他のヒント
あなたが伝播するからイベントを提出し、「ノーマル」を停止していない - (あるいはreturn false
ブロックの外に移動する).validationEnginge()
メソッドの後if
を追加してみます:
jQuery("#adminForm_1").submit(function () {
var empty = false;
jQuery(":input", "#adminForm_1").each(function () {
empty = (jQuery(this).val() == "") ? true : empty;
});
if (empty) {
if (confirm('You have not filled out all of the fields, do you wish to continue?')) {
jQuery("#adminForm_1").validationEngine({
ajaxSubmit: true,
ajaxSubmitFile: "/index.php?option=com_database&view=tripdetails&Itemid=12&client=1&task=save",
ajaxSubmitMessage: "Client Trip Details Saved",
inlineValidation: false,
success: false,
failure: function () {}
});
}
return false;
}
});
あるいは
jQuery("#adminForm_1").submit(function () {
var empty = false;
jQuery(":input", "#adminForm_1").each(function () {
empty = (jQuery(this).val() == "") ? true : empty;
});
if (empty) {
if (confirm( ... )) {
jQuery("#adminForm_1").validationEngine({ ... });
}
}
return false;
});
所属していません StackOverflow