-1

フォームがそのコードで送信されない理由を探しています:

$("#my_form").on('submit', function(e) {
    if (!myCondition) {
        if (anotherCondition === true) {

            e.preventDefault();
            $('#modal').modal('show');
            $("#btn_valid").on('click', function(e) {
                return true;
            });       
        }
    }
    return true;
});

modaleDOMに存在していた人)が表示されていますが#btn_valid、フォームを押すとフォームが送信されず、モーダルが画面に表示されたままになります。

を削除してもe.preventDefault、プロセスは停止しません。つまり、モーダルが表示され、モーダルのボタンを押さずにフォームが送信された直後です。

私は何を間違っていますか?

ありがとう。

4

1 に答える 1

1

これを試して:

$(function() {
    var submitForm = false;
    $('#my_form').submit(function(e) {
        if (!submitForm) {
            e.preventDefault();
            $('#modal').modal('show');
        }
    });

    $("#btn_valid").on('click', function(e) {
        submitForm = true;
        $('#my_form').submit();
    });
});

submitFormモーダルでボタンをクリックすると true に設定され、フォーム送信コールバック ハンドラーに入ると if ステートメントを通過し、最終的に通常どおりフォームを送信することがわかります。

于 2012-07-16T22:15:14.237 に答える