6

フォームにjQuery検証を使用していますが、フォームが検証されると、そのアクションを停止したいページがリロードまたは送信されます。すでに event.preventDefault() を使用していますが、機能しません。

これが私のコードです:

$("#step1form").validate();
$("#step1form").on("submit", function(e){
    var isValid = $("#step1form").valid();

    if(isValid){
        e.preventDefault();
        // Things i would like to do after validation
        $(".first_step_form").fadeOut();
        if(counter == 3){
            $(".second_step_summary").fadeIn();
            $(".third_step_form").fadeIn();
            $(".third_inactive").fadeOut();
        }else if(counter < 3){
            $(".second_step_form").fadeIn();
            $(".third_inactive").fadeIn();
        }

        $(".first_step_summary").fadeIn();
        $(".second_inactive").fadeOut();
    }

    return false;
});
4

3 に答える 3

8

私はすべての JS 検証にこの基本構造を使用しています。

$('#form').on('submit', function() {
    // check validation
    if (some_value != "valid") {
        return false;
    }
});

ステートメントは必要e.preventDefault();ありませんreturn false;。同じことを行います。

于 2013-07-24T08:20:30.263 に答える
1

プラグインは、有効および無効なフォーム送信試行に対するコールバックを提供します。submitHandler コールバックを提供すると、フォームはサーバーに自動的に送信されません。

$("#step1form").validate({
   submitHandler : function()
   {
        // the form is valid 
        $(".first_step_form").fadeOut();
        if(counter == 3){
            $(".second_step_summary").fadeIn();
            // etc
        }
   }
});
于 2013-07-24T10:48:11.713 に答える