0

jquery のバリデーターを使用して検証するフォームがあります。ベンダーを登録コードに入力した場合は、ドロップダウン メニューからベンダーを選択する必要があります。ただし、ベンダーの場合のみ、college と入力すると、ドロップダウン メニューから大学を選択する必要はありません。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 . 問題を再現するには、ベンダーを登録コード テキスト ボックスに入力し、ドロップダウンからベンダーを選択して [送信] をクリックします。これは、他の 2 つのテキスト ボックスの検証に失敗する方法を示しています。

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 に答える