jquery +验证多个下拉列表

时间:2011-08-09 05:13:21

标签: jquery

请告诉我如何验证表单中的多个下拉列表,如果在不同的下拉列表中选择了相同的值,则应触发验证。

这里,如果我从下拉列表中选择相同的选项,它应该触发验证。 (我正在使用jquery验证引擎进行表单验证)

<select name="user[role_id]">
  <option value="">Please select</option>
  <option value="1" selected="selected">Administrator</option>
  <option value="2">User</option>
  <option value="3">Editor</option>
</select>

<select name="user[role_id]">
  <option value="">Please select</option>
  <option value="1" selected="selected">Administrator</option>
  <option value="2">User</option>
  <option value="3">Editor</option>
</select>

感谢

2 个答案:

答案 0 :(得分:3)

最简单的方法是映射选择并寻找欺骗。有更好的算法来寻找欺骗(即,一旦检测到重复就退出),但我选择使用更短的代码,因为成本非常低:http://jsfiddle.net/rkw79/vqENk/

function HasDupe(){
    a = $('select').map(function(i,o) {
        return $(o).val();
    });
    return (a.length != $.unique(a).length);
}

答案 1 :(得分:0)

<select name="user[role_id]">
   <option value="0">Please select</option>
   <option value="1" selected="selected">Administrator</option>
   <option value="2">User</option>
   <option value="3">Editor</option>
</select>

<select name="user[role_id]">
   <option value="0">Please select</option>
   <option value="1" selected="selected">Administrator</option>
   <option value="2">User</option>
   <option value="3">Editor</option>
</select>
<script type="text/javascript">
  $(document).ready(function(e){
          if ($('select[name="user[role_id1]"]').val() == $('select[name="user[role_id2]"]').val()) {
        alert('select different value');//validation msg
    }
 });
</script>