2012-11-28 105 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; 
    } 
}