Jquery.Validate基于条件

Jquery.Validate基于条件,jquery,validation,select,conditional,Jquery,Validation,Select,Conditional,我正在尝试使用Jquery.Validate()进行条件验证 我有一个名为selectAmount的select 和一个名为txtmount的输入 如果选择amount value=“其他” 我希望TXT是必需的 <div id="container"> <form id="AddForm" method="POST" action="#"> <select name="selectAmount">

我正在尝试使用Jquery.Validate()进行条件验证

我有一个名为selectAmount的select 和一个名为txtmount的输入

如果选择amount value=“其他”

我希望TXT是必需的

<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>
}))


有人能帮忙吗?

事实上,你离得很近。
$(“#selectAmount”)
中的
告诉jQuery查找id为selectAmount的
元素。但是selectAmount是一个
名称
属性,而不是
标识
。因此,如果您只需将
id=selectAmount
属性添加到
select
中,一切都会正常进行。这是一个(警告被注释掉了)。另外,这里还有一些关于如果不想添加
id
属性的详细信息,请查看,但是,我建议使用
id

因此,最后只需更改这一行:


"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
    }
});