簡體   English   中英

JQuery驗證插件:如何使錯誤消息成為錯誤標簽中的屬性?

[英]JQuery validation plug-in: How to make the error message an attribute in the error label?

現在,我有一個驗證插件來顯示帶有兩個背景圖像之一的標簽,具體取決於該字段是否有效。 但是,錯誤文本仍會插入“無效”標簽中(默認情況下,“有效”標簽中沒有任何錯誤消息)。

我想刪除顯示在“無效”錯誤標簽上的文本,並將其放置在標簽內作為屬性值。 這樣,我可以使用工具提示插件將其顯示為鼠標懸停時的工具提示。

問題是,我不知道該怎么做。

我知道我必須“攔截” 消息驗證器選項中的錯誤消息以阻止它們出現。該選項可以針對給定的要求采用函數,該函數返回錯誤字符串(我將其設置為“”)。 但是(據我所知),我無法從那里訪問錯誤標簽對象以將消息作為attribute插入。 該選項的描述指出該函數將“元素”作為第二個參數,但是我不確定這是否意味着DOM元素或JQuery.val規則元素:

訊息:

定義自定義消息的鍵/值對。 鍵是元素的名稱,值該元素要顯示的消息。可以使用包含每個規則的特定消息的另一個映射來代替普通消息。 覆蓋元素的title屬性或方法的默認消息(按此順序)。 每個消息可以是字符串或回調。 在驗證程序的范圍內調用該回調,並以規則的參數作為第一個參數,將元素作為第二個參數,它必須返回String才能顯示為消息。

我以為這是字段DOM元素,並嘗試執行以下操作:

 //#createAccount is the id for the form
 messages: {
               eMail: {
                   required: function(param,element){
                       $("#createAccount label[class=\"error\"][for=" + element.getAttribute("name") + "]")
                       .attr("message","Required"); return "";},

                   email: function(param,element){
                       $("#createAccount label[class=\"error\"][for=" + element.getAttribute("name") + "]")
                       .attr("message","Not valid email"); return "";}
                    }
           },
            success: "valid"
    ...
    ...

但是由於某種原因,它操縱了成功驗證器選項,我用它來選擇要顯示的背景圖像。 因此,它標明了不應該做的事情。

我只是想知道這是否是正確的方法,或者是否有更簡單的方法

好的,我找出了問題所在。 看來,如果你提交一個空字符串(“”)作為消息的元素,插件會認為這意味着該字段是有效的。 所以,你可以做你,只要你返回以外的任何其他“功能里面做什么”或“”(我最終回到“\\ 0”,這是不是一個可打印字符)

暫無
暫無

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

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