2010-05-14 114 views
2

希望你能幫助我在這一個獨特的成功消息,我目前使用這樣的:如何顯示jQuery的表單驗證

jQuery plugin:validation (Homepage)

我一直在這裏閱讀相關的問題,但是這一次是最接近的獲得。 httx://stackoverflow.com/questions/1863448/jquery-validation-on-success

從插件的文檔 httx://docs.jquery.com/Plugins/Validation/validate#toption

成功字符串,回調
如果指定,則顯示錯誤的標籤,以顯示一個有效的元素。如果給出一個字符串,它將作爲一個類添加到標籤中。如果給出了一個函數,它的標籤(作爲jQuery對象)作爲唯一參數被調用。這可以用來添加一個文本,如「OK!」。

目前我只給對象給我的是標籤,我只能給它添加文字。現在我想要的是有獨特的成功信息。

例如: 用戶名字段將會有成功消息:'用戶名好嗎!'
電子郵件='電子郵件似乎是正確的'

東西沿着這些線,而不是在所有字段上顯示一個通用的成功消息。

編輯:

我只試過這個至今:

success: function(label) { 
    label.text("Ok!").removeClass("error").addClass("success"); 
    }, 

編輯 只想編輯,我想是進入輸入元素,可能訪問其屬性的方法,使用它顯示在label.text上。 。喜歡的東西label.text(element.attr(「標題」);例如

+0

我只試過這個至今: \t成功:功能(標籤){ \t label.text( 「OK!」)removeClass( 「錯誤」)addClass( 「成功」); \t}, – chriz 2010-05-14 10:24:26

回答

3

我能想到的最簡單的就是這樣:

jQuery(function($) { 
    $('form').validate({ 
     success: function(label) { 
      var name = label.attr('for'); 
      label.text(name+ ' is ok!'); 
     } 
    }); 
}); 

<form action="" method="post"> 
    <input name="username" class="required" type="text" /> 
    <input type="submit" /> 
</form> 

如果您想了解更多的消息隊列,也許你可以存儲你的消息在某處(一個額外的隱藏字段,或者額外的DOM,或者使用元數據)。確保它位於一致的位置(所以你可以遍歷它,所有字段都是一樣的),並相應地更新標籤消息?

+0

是否可以訪問輸入元素而不是標籤? 據我所知,標籤是動態製作的,我正在考慮在輸入elment標題屬性上存儲唯一的消息,例如 – chriz 2010-05-14 10:22:37

+0

,不要說,我試過了你的建議,它工作,我以前試過,我無法弄清楚爲什麼它第一次沒有工作,我遇到了通過對象標籤遍歷DOM的問題。,反正這裏是我的代碼: \t errorElement: 「EM」, \t成功:(label.prevAll( '標籤')文本()+ 「OK!」)功能(標籤){ \t label.text removeClass。 ( 「錯誤」)addClass( 「成功」)。 \t} – chriz 2010-05-15 02:51:52

+0

是的!自定義HTML屬性看起來是最好的方式去做這件事。否則,jQuery會威脅到令人厭惡的污染。 – 2013-05-03 06:08:48

0

For這裏值得一提的是我用來顯示獨特的隨機成功消息的代碼。

success: function(label) { 
     var messages = new Array(
      "Looks good!", 
      "You got it!", 
      "Ok!" 
     ); 

     var num = Math.floor(Math.random()*3); 

     label.text(messages[num]).addClass("success"); 
    }