[英]jQuery Validation Method - validation
在禁用Idealforms中的驗證時遇到問題,我希望以下字段未通過驗證
郵遞區號3,備忘錄2,上一個年度,上一個月
直到current_year中的值小於3
$(document).ready(function(){
$('#current_year').on("input", function() {
var dInput = this.value;
console.log(dInput);
$('#current_year').text(dInput);
$('form.idealforms').idealforms('addRules', {
'postcode3': ( parseInt( $('#current_year').val() ) < 3) ? 'required' : '',
});
});
$('form.idealforms').idealforms({
silentLoad: false,
rules: {
'postcode2': 'required',
'memo1': 'required',
'current_year': 'required',
'current_month': 'required',
},
onSubmit: function(invalid, e) {
e.preventDefault();
$('#invalid')
.show()
.toggleClass('valid', ! invalid)
.text(invalid ? (invalid +' invalid fields') : 'All good!');
}
});
假設您其余的代碼是正確的,我認為問題是val()
返回的是string
而不是number
。 您需要像這樣編寫表達式
( parseInt( $('#current_year').val() ) < 3 ) : 'required' : '';
或將val()與數字的字符串值進行比較。
( $('#current_year').val() < '3' ) : 'required' : '';
編輯
第二個問題是,一旦聲明了規則,代碼中的任何內容都不會更改規則。 因此,如果onload $('#current_year').val()
小於3,則始終需要輸入字段。
根據插件文檔,您可以在初始化插件后添加規則,如下所示
$('form').idealforms('addRules', {
'comments': 'required minmax:50:200'
});
因此,您也許可以使用它來更新規則。
$('#current_year').on("input", function() {
$('form.idealforms').idealforms('addRules', {
'postcode3': ( parseInt( $('#current_year').val() ) < 3) ? 'required' : '',
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.