JQuery验证:如何检查多个select中的项目

slo*_*lok 6 javascript validation jquery select

我有一个使用JQuery验证插件的表单.

<label>
    <input name="Distribution[]" type="checkbox" id="dist_europe" class="required minlength:1" value="Europe" />  Europe 
</label>

<select name="Europe[]" size="5" multiple id="Europe">
   <option value='Albania'>Albania</option>
   <option value='Andorra'>Andorra</option>
   <option value='Austria'>Austria</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我需要做'条件'验证.例如.如果选中了复选框,请确保选中"选择选项"中的至少一个项目.

 $(document).ready(function(){
     $("#commentForm").validate({
      rules: {
              Europe: {
                required: "#dist_europe:checked",
                minlength: 1
              }  
      },
      messages: {
        Europe: "Please select at least 1 country"
      }
     }
})
Run Code Online (Sandbox Code Playgroud)

我现在面临的问题是:

  1. 我能够检测到该复选框已被选中.
  2. 但是,我无法检查'select'数组,欧洲[]
  3. 如果我删除该阵列并将其命名为Europe,我将能够检测到至少选择了一个项目.但是,这样做意味着后端PHP脚本将无法处理数组中的多重选择.

我该如何解决这个问题?谢谢

Nic*_*ver 13

当使用一个名称,比如name="Europe[]",你需要使用一个字符串为您的标识(标识为名称,而不是ID的元素)的rulesmessages,如下所示:

$(document).ready(function(){
     $("#commentForm").validate({
      rules: {
        'Europe[]': {
                required: "#dist_europe:checked",
                minlength: 1
              }  
      },
      messages: {
        'Europe[]': "Please select at least 1 country"
      },
     debug: true
    });
});
Run Code Online (Sandbox Code Playgroud)

你可以在这里测试一下.