4

フォームを送信しようとするとエラーが発生するか、コンソールに手動で入力すると次のエラーが発生します。

RangeError: Maximum call stack size exceeded

これが私のコードです:

$(document).ready(function() {
    $('#contact').on('submit', function(event) {
        event.preventDefault();
        var valid = 1;
        var name = $('input[name$="name"]');
        var email = $('input[name$="email"]')
        var phone = $('input[name$="phone"]');
        var comment = $('input[name$="comment"]');
        if (!name.val() && valid == 1) {
            valid = 0;
            alert('Please fill out the Name field');
            name.focus();
        }
        if (!email.val() && valid == 1) {
            valid = 0;
            alert('Please fill out the E-mail Address field');
            email.focus();
        }
        if (!phone.val() && valid == 1) {
            valid = 0;
            alert('Please fill out the Phone field');
            phone.focus();
        }
        if (valid == 1) {
            $('#contact').submit();
        }
    })
});
4

1 に答える 1

17

submit ハンドラから submit を呼び出しているので、無限再帰です。true有効な場合とそうでない場合に戻りたいfalse

編集:ああ、この場合、Defaultを防ぎたいかどうかはわかりません。

于 2012-07-27T17:11:57.727 に答える