0

我有一个表格,我正在使用 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"
        }
    }
});​

如果我输入供应商并且没有从下拉菜单中选择供应商,它会发牢骚,这很好。问题是,如果我输入 vendor 并从 dd 菜单中选择它,而没有名字和姓氏(必须填写),它无法验证名称并继续前进。有谁知道问题是什么?

编辑:这是问题的一个工作示例:BIN。要重现该问题,只需在注册码文本框中输入 vendor,然后从下拉列表中选择 vendor 并单击提交。这将向您展示它如何无法验证其他两个文本框。

4

1 回答 1

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;
    }
 }
于 2012-11-28T22:53:00.617 回答