Mam wiele wyborów w formularzu, i muszę sprawdzić za pomocą jQuery, że zostały wybrane co najmniej wszystkie wymagane pola (required="true"
).Sprawdź, czy wymagane pola są zaznaczone w wybranym "wierszu"
coś takiego:
<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>
muszę sprawdzić wszystkie wybierz elementy, których klasa zawiera .check
i upewnić się, że wszystkie wymagane pola są przypisane.
Myślałem o postępowaniu w następujący sposób.
Złóż tablicę wszystkich wymaganych wartości:
var requiredFields = []; $('option:selected', this).attr('required').each(function(){ requiredFields.push($(this).val()); })
Złóż tablicę wszystkich wybranych wartości:
var valuesSelected = []; $('.check').each(function(){ valuesSelected.push($(this).val()); })
Sprawdź, czy wymagane pola są w wybranych wartości tablica, jeśli nie, coś:
for(i=0;i<requiredFields;i++){ if(jQuery.inArray(requiredFields[i], valuesSelected)==-1){ var error += 'Please select '+requiredFields[i]; } }
Pokaż komunikat o błędzie, czy pusty robi coś:
if(error!=''){ alert(error); // just for testing } else { // have fun }
mam znosić prosty jsFiddle go przetestować, ale wydaje się, że należy zrobić coś złego, żadnej pomocy?
aktualizacja, ale nadal nie działa .. – ghego1