簡體   English   中英

jQuery驗證停止表單提交

[英]jQuery Validate stop form submit

我正在使用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;
});

submitHandler是插件中內置的回調函數。

submitHandler (默認:本機表單提交):

當表單有效時,回調處理實際提交。 獲取表單作為唯一參數。 替換默認提交。 在驗證后通過Ajax提交表單的正確位置。

由於submitHandler自動捕獲提交按鈕的單擊並僅在有效表單上觸發,因此您不需要另一個提交處理程序,也不需要使用valid()來測試表單。

您的代碼可以替換為:

$("#step1form").validate({
    submitHandler: function(form) {
        // 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;  // block the default submit action
    }
});

我將這個基本結構用於我的所有JS驗證,它可以滿足您的要求

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

你不需要e.preventDefault(); 並且return false; 聲明,他們做同樣的事情。

該插件為有效和無效的表單提交嘗試提供回調。 如果您提供submitHandler回調,則表單不會自動提交給服務器。

$("#step1form").validate({
   submitHandler : function()
   {
        // the form is valid 
        $(".first_step_form").fadeOut();
        if(counter == 3){
            $(".second_step_summary").fadeIn();
            // etc
        }
   }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM