2013-05-20 54 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/