2009-06-12 74 views
2

我添加了一個驗證碼到我的表單,我想驗證此字段。jQuery的自定義方法問題,

jQuery.validator.addMethod("matchCaptcha", function(value,element) { 
    return this.optional(element) || value == '#request.strCaptcha#'; 
}); 

#request.strCaptcha#這部分只返回一個字母數字字符類似規則之下「cZk9ljW」

,我說:

captcha : { matchCaptcha : true } 

驗證不會運行,我沒有得到任何來自腳本錯誤。我究竟做錯了什麼?謝謝

回答

1

你發佈的一切聽起來都很好,這可能意味着它沒有發佈。

  1. 你正在做你的addMethod$(document).ready()裏面,對不對?
  2. 您是否在驗證函數中使用調試alert()運行此驗證,以驗證它是否實際上未運行,而不是運行並始終返回true?
  3. 驗證碼文本區域的輸入名稱是captcha,是嗎?

如果添加alert()並找到驗證方法被調用,我對你的建議是,剛剛擺脫了this.optional(element) ||部分。無論如何,我不認爲你想讓你的驗證碼成爲可選項。

0

這一個有點棘手。我正在使用ColdFusion。我創建了一個自定義標籤來創建並顯示驗證碼。我在自定義標記調用後刪除了jQuery.validator.addMethod。那麼我擺脫了這一點。可選(元素)||部分。此外,必須添加另一個$()。ready(function(){...});

所以,它看起來像:

$()準備就緒(函數(){ jQuery.validator.addMethod( 「matchCaptcha」 功能(價值元素){ 返回值==「#request .strCaptcha#'; }); });

我在驗證規則中仍然有captcha:{matchCaptcha:true}。感謝您的高舉。