2013-05-20 108 views
-1

我已經驗證一個表單像這樣使用jQuery驗證插件:驗證多重選擇列表

<form class="myform" 
<select name="Input" id="input1"> 
<option value="DO0" opt_numAdults="2" opt_numChilds="0" >0</option> 
<option value="DO1" opt_numAdults="2" opt_numChilds="0" >1</option> 
<option value="DO2" opt_numAdults="2" opt_numChilds="0" >2</option> 
<option value="DO3" opt_numAdults="2" opt_numChilds="0" >3</option> 
<option value="DO4" opt_numAdults="2" opt_numChilds="0" >4</option> 
<option value="DO5" opt_numAdults="2" opt_numChilds="0" >5</option> 
</select> 
<select name="Input" id="input2"> 
<option value="FP0" opt_numAdults="2" opt_numChilds="1" >0</option> 
<option value="FP1" opt_numAdults="2" opt_numChilds="1" >1</option> 
<option value="FP2" opt_numAdults="2" opt_numChilds="1" >2</option> 
<option value="FP3" opt_numAdults="2" opt_numChilds="1" >3</option> 
<option value="FP4" opt_numAdults="2" opt_numChilds="1" >4</option> 
<option value="FP5" opt_numAdults="2" opt_numChilds="1" >5</option> 
</select> 
<button type="submit" id="mybutton">Go</button> 
</form> 

我需要他doesen't選擇這2場的至少一個阻止用戶。 我使用這個代碼,但它doesen't工作...

$bt('.myform').submit(function(){ 

if($('#input1').val() == "" || $bt('#input2').val() == ""){ 

alert("Complete all fields!"); 

return false; 

} 

}); 

}); 

任何想法?

+0

您的自定義驗證代碼似乎有ABS與jQuery Validate插件無關。 '.validate()'方法在哪裏? – Sparky

+0

'$ bt'應該是什麼? – Sparky

回答

0

你有很多的問題,在您的代碼:

  • 你說你想使用jQuery驗證插件,但我沒有看到你的代碼的插件的任何地方。您至少必須包含插件並調用.validate()方法來初始化它。

  • 在您的jQuery代碼中,您使用的是$bt以及$。我不知道你要在這裏做什麼。什麼是$bt?在這個答案中,我將使用$來引用jQuery對象。

  • 你的jQuery代碼似乎是自定義驗證代碼,但它確實沒有像jQuery Validate插件可以使用的那樣。

  • 您的開端<form標記缺少結束括號,>

  • 爲了使jQuery Validate插件正常工作,每個輸入必須具有唯一的name屬性。您的select元素都被命名爲Input。在我的回答中,我已將它們更名爲Input1Input2

  • 對於jQuery驗證插件來驗證select元素,每個select內的非常第一option元件必須包含一個value=""屬性。

  • 要從一組物品中選擇一個物品,請使用additional-methods.js file中包含的require_from_group規則/方法。不要忘記也包含這個文件。組中的每個select項必須包含一個class。我也使用groups選項將錯誤消息合併爲一個。

HTML:

<form class="myform"> 
    <select name="Input1" id="input1" class="selectgroup"> 
     <option value="">please select...</option> 
     <option value="DO0" opt_numAdults="2" opt_numChilds="0">0</option> 
     <option value="DO1" opt_numAdults="2" opt_numChilds="0">1</option> 
     ... 
    </select> 
    <br/> 
    <select name="Input2" id="input2" class="selectgroup"> 
     <option value="">please select...</option> 
     <option value="FP0" opt_numAdults="2" opt_numChilds="1">0</option> 
     ... 
    </select> 
    <br/> 
    <button type="submit" id="mybutton">Go</button> 
</form> 

的jQuery:

$(document).ready(function() { 

    $('.myform').validate({ // initialize the plugin 
     rules: { 
      Input1: { 
       require_from_group: [1, ".selectgroup"] 
      }, 
      Input2: { 
       require_from_group: [1, ".selectgroup"] 
      } 
     }, 
     groups: { 
      group: "Input1 Input2" 
     } 
    }); 

}); 

DEMO:http://jsfiddle.net/rj5Gw/