我正在尝试使用Jquery.Validate()
进行条件验证我有一个名为selectAmount的选择 和一个名为txtAmount的输入
如果selectAmount值="其他"
我希望txtAmount是必需的。
<div id="container">
<form id="AddForm" method="POST" action="#">
<select name="selectAmount">
<option value="10">$10</option>
<option value="25">$25</option>
<option value="50">$50</option>
<option value="100">$100</option>
<option value="250">$250</option>
<option value="500">$500</option>
<option value="Other">Other</option>
</select>
<input name="txtAmount" type="text" placeholder="Enter Amount" />
<button id="AddToCart">Add to Cart</button>
</form>
</div>
我在这里设置规则。 我遇到的问题是:
"txtAmount": {
required: function(element){
alert($("#selectAmount").val());
return false;
$('#selectAmount').val() //is always undefined
$(document).ready(function () {
$("#AddForm").validate({
rules: {
"selectAmount" : {
required: true
},
"txtAmount": {
required: function(element){
alert($("#selectAmount").val());
return $("#selectAmount").val() == 'Other';
}
}
},
messages: {
"selectAmount": {
required: "Amount selection is required."
},
"txtAmount": {
required: "Amount is required."
}
},
submitHandler: function (form) { // for demo
return false; // for demo
}
});
});
有人可以帮忙吗?
答案 0 :(得分:2)
你其实很亲密。 #
中的$("#selectAmount")
告诉jQuery查找具有selectAmount id
的元素。但是selectAmount是name
属性,而不是id
。因此,如果您只是将id=selectAmount
属性添加到select
,那么一切正常。这是fiddle(警告已注释掉)。此处还有关于jQuery selectors.的更多信息如果您不想添加id
属性,请查看attribute equals selector.但是,我建议您使用id
。
所以最后只需改变这一行:
<select name="selectAmount">
到
<select name="selectAmount" id="selectAmount">