2012-09-18 25 views
8

我正在使用jQuery驗證插件並定義瞭如下所示的表單驗證函數。基於某些用戶操作,我正在運行自定義JS函數,並且在該函數中我只想檢查電子郵件和電話字段是否有效。 我不想驗證它們,即我不想顯示驗證錯誤,我只需要檢查它們的值是否有效。jQuery驗證插件 - 檢查字段是否有效(但不顯示驗證消息)

喜歡的東西

$('#email').isvalid(); 

我已簽出驗證的方法element但驗證元素,而不是隻檢查它是否值是有效的。所以換句話說,我正在尋找一種以編程方式運行規則的方法。任何幫助表示讚賞!

表單驗證以下功能:

var validator = $("#olForm").validate({ 
    rules: { 
     "email": { 
      required: true, 
      email: true 
     }, 
     "phone": { 
      required: true, 
      digits: true, 
      minlength: 9, 
      maxlength: 11 
     } 
    } 
}); 
+0

** Quote ** _「我不想驗證它們,即只是檢查它們的值是否有效。「_〜嗯,這是驗證...檢查字段是否有效。請詳細解釋你想要的內容...說:」我不想驗證,但我想檢查有效性「是無意義的 – Sparky

+1

@ Sparky672他不想顯示驗證的結果(例如錯誤消息),他只是想在內部檢查他們是否正確 –

+1

@MikeRobinson,如果這一切都是真的,那麼他需要說我沒有做出任何假設,所以我要求OP澄清他措辭不佳的問題。 – Sparky

回答

9

針對原有的jsfiddle,請參閱該版本:

http://jsfiddle.net/33PGQ/23/

這被修改在三個方面:首先,在底部,一個簡單的布爾值設爲等於兩個字段是否有效(然後提醒)。由於每個valid()調用都返回一個布爾值,因此您可以簡單方便地檢查所有表單元素的有效性。

其次,驗證選項通過自定義showErrors函數展開,該函數沒有內部代碼。此函數覆蓋驗證錯誤的默認行爲,以便儘管可以檢查字段的內部有效性並處理字段的有效性,但不會顯示實際的錯誤文本,從而啓用所有驗證規則,但不會顯示驗證結果。

最後,雖然它沒有明確在最初的問題提出要求,我增加了可選的「的onsubmit:虛假」的設置,這將覆蓋阻止表單提交,除非所有驗證規則都成功檢查的調用validate的默認行爲。如果你想阻止提交(我想你會),這可以被刪除,但我認爲這是一個有用的功能要注意。如果您有特殊情況需要表單提交,即使表單驗證失敗,我也會將其包含在此處。

絕對值得查看用於驗證的選項列表;有許多方法可以調整驗證器的行爲以恰好符合您的要求。

+1

其實我確實需要消息進行字段驗證(在表單提交的情況下)。我還需要驗證提交時的表單。但是我只能使用showErrors函數來顯示錯誤,只有當我設置了一個布爾標誌。見http://jsfiddle.net/dSu3X/5/所以..謝謝。賞金是你的! – arahant

+0

根據SO – arahant

1

聽起來你正在尋找的.valid()方法。請注意,您仍然需要針對整個表單運行validate()以初始化窗口小部件。

http://docs.jquery.com/Plugins/Validation/valid

+0

它表示驗證()在使用這種方法檢查之前需要在表單上調用,所以我認爲如果我在至少驗證一次整個表單之前調用它,它將不起作用 – arahant

+2

檢出http://jsfiddle.net/33PGQ/ 19 /有效的方法也發射驗證,w這與文檔中聲稱的有些相反。 – arahant

+0

檢查http://jsfiddle.net/33PGQ/21/在調用$(「#form1」)。validate方法之前,有效方法也會返回正確的值。這又與文檔中聲稱的相反! – arahant

2

有一個handy method called .checkForm()(截至2015年9月無證),這使得這非常簡單。不同於調用.valid(),當它被稱爲此將不顯示錶單錯誤:

// Returns a boolean 
$('form').validate().checkForm(); 
+0

在7小時內驗證了所有表格,該操作員要求提供特定的字段。 –

4

有一個無證方法檢查()是專門做這種沒有實際造型的字段或顯示任何錯誤:

var validator = $('form').validate(); 
if(validator.check('#email')){ 
    // this field is valid but no styling was applied 
} 
相關問題