JQuery validation : How to check items in multiple select
I have a form using JQuery validation plugin.
<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>
I need to do 'conditional' validation. eg. If checkbox is selected, make sure at least one item in 'select option is selected'.
$(document).ready(function(){
$("#commentForm").validate({
rules: {
Europe: {
required: "#dist_europe:checked",
minlength: 1
}
},
messages: {
Europe: "Please select at least 1 country"
}
}
})
The issue I am facing now is :
- I am able to detect that the checkbox is selected.
- However, I am not able to check the 'select' array, Europe[]
- If I remove the array, and name it Europe, I will be able to detect that at least one item is selected. But, doing that will mean the backend PHP scri开发者_StackOverflow中文版pt will not be able to process the multiple select in the array.
How do I work around this? Thanks
When using a name like name="Europe[]"
, you'll need to use a string for your identifier (the identifier is the name, not the id of the element) in rules
and messages
, like this:
$(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.
精彩评论