我遇到了jQuery驗證條件規則的問題。jQuery驗證條件規則使輸入永不有效 - 有效總是返回0
我指定條件規則的元素作爲這樣:
var validatorSettings = $("form").data('validator').settings;
validatorSettings.rules = $.extend({}, validatorSettings.rules, {
TimeFrameAmount: {
number: function() { return $("select[name='TimeFrameUnits']").val() === "true"; },
required: function() { return $("select[name='TimeFrameUnits']").val() === "true" } ;
}
});
問題是當我提交表單,$("form").valid()
返回0
我追查是向下看到$("input[name='TimeFrameAmount']").valid()
是唯一的元件在返回0的表單中,因此是導致表單無法驗證的元素。
我進一步追查到這一點$("input[name='TimeFrameAmount']").valid()
總是返回0並導致表單驗證失敗,即使條件規則函數都返回false。
我通過在條件規則函數中設置一個斷點來檢查這一點,然後從Firefox控制檯觸發對$("input[name='TimeFrameAmount']").valid()
的調用。
我的條件規則都返回false並且$("input[name='TimeFrameAmount']").valid()
仍然返回0,並且表單驗證失敗。
有一點需要注意的是,當我的條件規則返回false時,不會觸發errorPlacement
回調,這是有道理的,因爲沒有驗證=沒有錯誤。
事實上,輸入甚至具有在我驗證表單時的「有效」類(和之後仍然有它)
然而,無論那些東西防止valid()
方法從返回該0
任何想法如何讓表單通過驗證?
這驗證插件是這樣嗎?規則看起來很奇怪。 – JJJ 2013-02-19 08:50:09
jQuery驗證。請參閱kjetilh的回答中的評論。你能否確認這些函數是否適用於規則邏輯或規則條件 – parliament 2013-02-19 09:48:02
你的意思是http://docs.jquery.com/Plugins/Validation/validate?我得到50萬「jquery validate」Google搜索的結果... – JJJ 2013-02-19 09:50:05