2014-09-21 44 views
0

我正在使用Jquery驗證來驗證表單。 我已經通過Jquery使用自定義驗證規則驗證任意HTML元素

$.validator.addMethod 

添加自定義驗證方法,如果我添加此方法的文本框,確認將工作沒有問題。

我想要這個自定義驗證方法來突出顯示我通過JavaScript創建的某個div容器。 如果我更改以下行(裏面的.validate呼叫「規則」)

"MyTextbox": 
{ 
    MyMethod: true, 
}, 

使用我通過JavaScript創建的div的ID,我自定義的驗證規則將被忽略(其他規則將仍然適用)。

我很努力地找到相應的文檔。看來,我只能添加一個規則輸入元素,而不是一個div。 我接近這個錯誤的方式嗎?我如何添加一個規則,在某個div元素之後追加消息,如果驗證失敗?

+0

_「如何添加一條規則,在某個div元素之後添加一條消息,如果驗證失敗?」_〜取決於...您是否驗證了input元素並需要幫助放置消息或你在尋找一種方法來驗證'div'嗎? – Sparky 2014-09-21 22:46:22

回答

4

兩個重要的東西......

1)您必須分配通過使用name.validate()rules選項時規則,每輸入字段必須包含一個獨特的name屬性無論規則如何分配。

2)使用此插件,驗證只能應用於inputtextareaselect元素。期。

解決方法:可以創建用於驗證的type="hidden"input元素和使用jQuery的相關值從div在一定的觸發事件複製到這個隱藏字段。 You can then manually trigger validation using something like $('#myHiddenInput').valid()


對於精確的錯誤消息放置,您可以使用the errorPlacement callback function。編寫一個自定義函數,用於放置一條消息的條件。

+0

我沒有意識到兩件重要的事情;)我現在使用一個隱藏的輸入,並將一個if/else塊添加到errorPlacement =) – citronas 2014-09-22 14:52:57