2014-12-30 63 views
0

我需要知道表單是否有效。但調用valid()會更新我的屏幕,將錯誤消息放在那裏。我需要知道,如果我的表單在沒有與UI進行交互的情況下是有效的。這可能嗎?在不更新屏幕的情況下調用jQuery valid()

+0

您可以指定你的「的意思,而不與UI交互?」你想要觸發驗證? – itamar

+0

我想說'if($(form).valid()){do whatever}'。當我這樣做時,valid()調用會更新我的屏幕(即「FOO字段是必需的」)。 – Paul

+0

問題是.valid()僅適用於按插件網站上的文檔單擊按鈕。 – itamar

回答

0

試試這個 - 用你的東西替換變量。

,如果你只是驗證,而不提交 - 做到這一點:

var yourform = $('#yourform'); 
    yourform.validate({ 
    errorPlacement: function(error,element) { 
    return true; 
    } 
}); 

    $('a.validateit').click(function(){ 
    var isvalid = yourform.valid(); 
    if (isvalid){ 
    // do stuff 
    } else { 
     alert('form is not valid'); 
    } 
     }); 

如果你這樣做是對提交:

var yourform = $('#yourform'); 

    yourform.validate({ 
    errorPlacement: function(error,element) { 
    return true; 
    } 
}); 

    yourform.submit(function(e){ 
    e.preventDefault(); 
    var isvalid = yourform.valid(); 
    if(isvalid){ 

    $.ajax({ 
          type: "POST", 
          url: yourform.attr('action'), 
          data: yourform.serialize(), 
          success: function(response) { 
            //do stuff 
          }, 
          error:function(xhr, ajaxOptions, thrownError){ 
            // do error stuff 
          } 
        }); 
      }); 
    } else { 
    alert('form is not valid'); 
    } 
    }); 
+1

謝謝!我沒有想過使用preventDefault,然後手動序列化和發送自己。這非常漂亮。 – Paul

+0

沒問題!很高興我能幫上忙。 – itamar

相關問題