2015-06-23 3 views
0

Я использую скрипт проверки jQuery для проверки трех списков выбора в форме.jQuery select list validation

Вопрос, который у меня есть, работает только с первым списком select. Это код JQuery Я использую для первого списка выбора с именем и идентификатором отдела, первый option имеет значение 0:

$(document).ready(function() { 
$('#form1').validate({ // initialize the plugin 
    rules: { 
     Department: { 
      selectcheck: true 
     } 
    } 
}); 

jQuery.validator.addMethod('selectcheck', function (value) { 
    return (value != '0'); 
}, "required"); 
}); 

Второй select список с именем и идентификатором FBType, снова первый option имеет значение 0, то это код:

$(document).ready(function() { 

$('#form1').validate({ // initialize the plugin 
    rules: { 
     FBType: { 
      selectcheck: true 
     } 
    } 
}); 

jQuery.validator.addMethod('selectcheck', function (value) { 
    return (value != '0'); 
}, "required"); 
}); 

Может ли один понять, почему второй список выбора не будет работать. Я не получаю ошибок, которые форма просто представляет.

ответ

0

Вы копируете код, если он не нужен.

попробовать это:

$(document).ready(function() { 
 
    $('#form1').validate({ // initialize the plugin 
 
     rules: { 
 
     Department: { 
 
      selectcheck: true 
 
     }, 
 
     FBType: { 
 
      selectcheck: true 
 
     } 
 
     } 
 
    }); 
 

 
    jQuery.validator.addMethod('selectcheck', function(value) { 
 
     return (value != '0'); 
 
    }, "required"); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/additional-methods.js"></script> 
 

 
<form id="form1"> 
 
    <select name="Department"> 
 
    <option value='0'>Department select...</option> 
 
    <option value='1'>option 1</option> 
 
    <option value='2'>option 2</option> 
 
    </select> 
 
    <br /> 
 
    <select name="FBType"> 
 
    <option value='0'>FBType select...</option> 
 
    <option value='1'>option 1</option> 
 
    <option value='2'>option 2</option> 
 
    </select> 
 
    <br /> 
 
    <input type="submit" value="Submit" /> 
 
</form>

0

Это потому, что $('#form1').validate({... предполагается использовать для инициализации плагина на всей форме сразу. Вы не назовете .validate() для каждого входа, и не можете. Плагин использует только первый экземпляр и игнорирует все остальные.

Вам также не нужно звонить по телефону .addMethod() не один раз. Как только вы вызываете jQuery.validator.addMethod('selectcheck',..., метод selectcheck был создан и может использоваться несколько раз.

$(document).ready(function() { 

    jQuery.validator.addMethod('selectcheck', function(value) { // create new rule 
     return (value != '0'); 
    }, "required"); 

    $('#form1').validate({ // initialize the plugin on "#form1" 
     rules: { 
      Department: { 
       selectcheck: true 
      }, 
      FBType: { 
       selectcheck: true 
      } 
     } 
    }); 

}); 

DEMO: http://jsfiddle.net/03rrL727/


Примечание: с правильной HTML разметки, вам не нужно будет написать специальный метод, чтобы сделать <select> требуется. Первому <option> просто нужен атрибут value=''; затем используйте правило required.

<select name="Department"> 
    <option value=''>please select...</option> 
    <option value='1'>option 1</option> 
    <option value='2'>option 2</option> 
</select> 

DEMO 2: http://jsfiddle.net/03rrL727/1/