質問

私は確認が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 falsepreventDefaultと同じ効果があり、プラス、それは親要素にイベントのバブリングを停止しています。これを達成するための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;
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top