2013-05-20 2 views
-1

Я проверить форму, как это с JQuery плагин валидации:Validate множественного выбора списка

<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

Ваш код валидации, как представляется, абс не имеет ничего общего с плагином jQuery Validate. Где метод '.validate()'? – Sparky

+0

Что такое '$ bt'? – Sparky

ответ

0

У вас есть много проблем в вашем коде:

  • Вы говорите, что вы хотите использовать плагин JQuery Validate, но я не вижу плагин в любом месте в вашем коде. Вы бы, по крайней мере, должны были включить плагин и вызвать метод .validate() для его инициализации.

  • В вашем коде jQuery вы используете $bt, а также $. Я понятия не имею, что вы здесь делаете. Что такое $bt? В этом ответе я просто использую $ для ссылки на объект jQuery.

  • Ваш код jQuery представляется настраиваемым кодом проверки, но он действительно не похож на плагин jQuery Validate.

  • Ваше открытие <form тег отсутствует закрывающий кронштейн, >.

  • Для правильной работы плагина jQuery Validate каждый вход должен иметь уникальный атрибут name. Оба из ваших select элементов называются Input. В моем ответе я переименовал их в Input1 и Input2.

  • Для плагин JQuery Validate для проверки select элементов, первый элемент option внутри каждого select должен содержать атрибут value="".

  • Чтобы потребовать один элемент из группы элементов, вы используете правило/метод require_from_group, содержащийся в additional-methods.js file. Не забудьте также включить этот файл. Каждый элемент 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/