【问题标题】:jquery+validation multiple dropdownsjquery+validation 多个下拉菜单
【发布时间】:2011-08-09 05:13:21
【问题描述】:

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

在这里,如果我从两个下拉列表中选择相同的选项,它应该会触发验证。 (我正在使用 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>

谢谢

【问题讨论】:

    标签: jquery


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:
      <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>
      

      【讨论】:

        猜你喜欢
        • 2011-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-28
        相关资源
        最近更新 更多