2010-11-16 14 views
1

我正在使用這兩個插件jquery.validate和jquery.form分開,但我想一起使用它們。 我有一個簡單的用戶窗體,有幾個字段可供驗證。如何將jquery.validate與jquery.form整合?

與插件腳本:

$(function() { 

    $("#my_form").validate({ 
    submitHandler: function(form) { 

    var my_options = { 
    target:  '#save_form', 
    dataType:  'json', 
    beforeSubmit: showRequest, 
    success:  showResponse 
    }; 
    $(form).ajaxForm(my_options); 

    } 
    }); 

}); 

function showRequest(formData, jqForm, my_options) { 
    $("#save_form").fadeIn().html('<img src="<?=ICONES?>spin_light.gif">'); 
} 

function showResponse(data, responseText, statusText) { 
    // do something 
} 

這看起來OK,和驗證工作。問題是我必須在提交按鈕(<input type="submit" value="Save" class="button" />)中單擊兩次以提交表單。每次對錶單提交時,都只會在按鈕上點擊第二次。這裏有什麼問題?

問候,若昂克萊裏戈

+0

發現了問題:我showld使用,而不是ajaxSubmit會ajaxForm,因爲不提交表單。 – jaclerigo 2010-11-16 12:51:54

回答

2

從未嘗試過驗證的submitHandler選項,
我也用這兩個插件,但以這樣的方式

$('#my_form').validate({[your options here]}).submit(function() 
    { 
     $(this).ajaxSubmit({ 
      beforeSubmit: function (arr, jqForm, options) 
     { 
       //can continue if the form is valid 
       return jqForm.validate().form(); 
      }, 
      success: function (ret, statusText, xhr, jqForm) 
      { 
       //party 
      } 
     }); 
     return false;//stop regular submit 
    });