2012-11-28 62 views
0

我有一个表单,我正在使用jquery的验证器来验证。如果他们输入Vendor进入注册码,那么他们必须从下拉菜单中选择供应商。但是,只有供应商,如果他们输入大学,他们不必从下拉菜单中选择大学。下面是HTML的一部分:JQuery验证写入自定义函数

<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。要重现问题,只需在注册码文本框中输入供应商,然后从下拉菜单中选择供应商,然后单击提交。这会告诉你如何验证其他两个文本框。

+0

检查身份证:'regcode'与'regis_code'和'type'与'iitype' ... –

回答

0

看起来您已经使用了错误的ID。 http://jsbin.com/welcome/54628/editiitype --> type

function(value, element) { 
    if((value.toUpperCase()) == "VENDOR") { 
     if((value.toUpperCase())==($('#type').val().toUpperCase())) 
      return true; 
    } 
}