我有一个表单,我正在使用jquery的验证器进行验证。如果他们将供应商输入注册码,那么他们必须从下拉菜单中选择供应商。但只有供应商,如果他们打字大学,他们不必从下拉菜单中选择大学。这是html部分:
<form id="everything" method="post">
First Name:<input type="text" name="fname" id="fname"/>
Last Name:<input type="text" name="lname" id="lname"/>
<select name="type" id="type">
<option value="">None</option>
<option value="Early College">Early College</option>
<option value="Public School">Public School</option>
<option value="Vendor">Vendor</option>
<option value="other">Other</option>
</select>
Registration Code: <input type="text" name="regcode" id="regcode"/>
</form>
然后是jquery:
jQuery.validator.addMethod("registration_check", function(value, element) {
if ($('#regis_code').val() == "Vendor") {
return ($('#regis_code').val() == $('#iitype').val());
}
}, jQuery.format("You entered Vendor as the registration code, please select vendor from the Institutional Information Type drop down menu."));
var val = $('#everything').validate({
rules: {
fname: { required: true},
lname: { required: true},
regis_code: {
required: true,
registration_check: true,
}
},
messages: {
regis_code: {
required: "Please enter a registration code"
}
}
});
如果我输入供应商并且没有从下拉菜单中选择供应商,它会发出呜呜声,这很好。问题是,如果我输入供应商并从dd菜单中选择它并且没有任何名称(必须填写),它将无法验证名称并继续前进。有谁知道问题是什么?
编辑:以下是问题的一个有效示例:BIN。要重现此问题,只需在注册码文本框中键入vendor,然后从下拉列表中选择供应商,然后单击“提交”。这将向您展示如何验证其他两个文本框。
答案 0 :(得分:0)
看起来你使用了错误的ID。 http://jsbin.com/welcome/54628/edit iitype --> type
function(value, element) {
if((value.toUpperCase()) == "VENDOR") {
if((value.toUpperCase())==($('#type').val().toUpperCase()))
return true;
}
}