I have several selections in the form, and I need to check with jQuery that at least all required fields ( required="true") are selected .
Something like that:
<select class="check" name="first">
<option value="some" required="true">Some required</option>
<option value="other">Other Value</option>
<option value="few" required="true">Few required</option>
</select>
<select class="check" name="second">
<option value="some" required="true">Some required</option>
<option value="other">Other Value</option>
<option value="few" required="true">Few required</option>
</select>
<select class="check" name="third">
<option value="some" required="true">Some required</option>
<option value="other">Other Value</option>
<option value="few" required="true">Few required</option>
</select>
<select name="other">
<option value="some" required="true">Some required</option>
<option value="other">Other Value</option>
<option value="few" required="true">Few required</option>
</select>
I need to check all select elements whose class contains .checkand make sure that all required fields are assigned.
I thought of the following:
Create an array of all the necessary values:
var requiredFields = [];
$('option:selected', this).attr('required').each(function(){
requiredFields.push($(this).val());
})
Create an array of all the selected values:
var valuesSelected = [];
$('.check').each(function(){
valuesSelected.push($(this).val());
})
Check if the required fields are in the selected array of values if you are not doing anything:
for(i=0;i<requiredFields;i++){
if(jQuery.inArray(requiredFields[i], valuesSelected)==-1){
var error += 'Please select '+requiredFields[i];
}
}
Show error message, or if something is empty:
if(error!=''){
alert(error);
} else {
}
I checked a simple jsFiddle , but it seems like I should be doing something wrong, any help?
source
share