2010-10-12 66 views
5

我有一个使用JQuery验证插件的表单。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> 

我需要做'条件'验证。 例如。如果选中复选框,请确保'选择选项被选中'中至少有一项。

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

我现在面临的问题是:

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

我该如何解决这个问题?由于

回答

12

当使用一个名称,如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 
    }); 
}); 

You can test it out here

+0

非常感谢。它效果很好。 – slok 2010-10-15 12:41:31

相关问题