我目前正在使用bassistance jquery 验证或 jqueryvalidation 插件(他们将其重命名),我让它验证如下形式:
if($.fn.validate) {
$("#frmNewOrder").validate({
rules: {
txtAmount: {
required: true,
digits: true
},
ddlAccount: {
required: true
},
ddlBank: {
required: true
}
}
});
}
现在取决于我需要或不需要额外字段的下拉列表,并取决于该下拉列表的另一个文本输入。所以就像:
if($('#txtAmount').val() >= 10000){
//add ddlReason required
}
if($('#ddlReason').val() == 'o'){
//add txtReason required
}
我已经尝试像其他字段一样添加 css 类“必需”,但如果它们不在规则之内,我会接受它,那么它不起作用?我试过添加这样的规则:
$( "#ddlReason" ).rules( "add", {
required: true});
这也不起作用。有什么建议么?
编辑:这是我正在使用的 jquery 验证的链接。如果我在外面使用规则,则会出现此错误:
Uncaught TypeError: Cannot read property 'settings' of undefined
在第 124 行:
var settings = $.data(element.form, 'validator').settings;
并使用我在其他地方看到的建议,我已经这样做了,这就是导致错误的原因:
var defaultrules = {
txtAmount: {
required: true,
digits: true
}
}
if($.fn.validate) {
$("#frmNewOrder").validate();
addRules(defaultrules);
}
编辑 2:这是 html 标记,希望对您有所帮助。
<form id="frmNewOrder" name="frmNewOrder" action="" method="post">
<label>Amount</label>
<input type="text" name="txtAmount" id="txtAmount" class="required" />
<button id="calculate" type="button">Calculate</button>
<div id="dvreason" style="display:none;">
<select id="ddlReason" name="ddlReason">
<option></option>
<option value="i">Option 1</option>
<option value="o">Other</option>
</select>
<div id="dvother" style="display:none">
<label>Other reason</label>
<input type="text" name="txtOther" id="txtOther" />
</div>
</div>
<input type="submit" name="send" id="send" value="Send" />
</form>