3 Stimmen

jquery count select Eingaben, die dem gewünschten Wert entsprechen

Ich habe ein (von Django generiertes) Formular mit dem folgenden Inhalt:

<form action="./" id="my_form" method="post">
...
<select name="object_0_status" id="id_object_0_status">
<option value="">---------</option>
<option value="1">Online</option>
<option value="2">Offline</option>
<option value="3">Unknown</option>
</select>
<select name="object_1_status" id="id_object_1_status">
<option value="">---------</option>
<option value="1">Online</option>
<option value="2">Offline</option>
<option value="3">Unknown</option>
</select>
<select name="object_2_status" id="id_object_2_status">
<option value="">---------</option>
<option value="1">Online</option>
<option value="2">Offline</option>
<option value="3">Unknown</option>
</select>
    ...
</form>

Ich schreibe eine benutzerdefinierte Validierung Methode (mit dem JQuery Validierungen Plugin http://docs.jquery.com/Plugins/validation ), die verschiedene Einträge im Formular miteinander abgleicht. Dazu muss ich die Anzahl der Auswahlfelder abrufen, deren ausgewählter Wert auf "1" gesetzt ist (z. B. online).

Die Auswahlfelder werden von einer Formularfabrik generiert, so dass es eine variable Anzahl von ihnen gibt. Es gibt auch andere Auswahlmöglichkeiten auf dem Formular, die nicht gezählt werden sollten - nur die mit der Endung "_status".

Wie lässt sich das am saubersten bewerkstelligen?

Danke

8voto

fearofawhackplanet Punkte 49790
$('select[id$=_status] option:selected[value="1"]').length;

siehe Beispiel aquí

2voto

Sarfraz Punkte 366217

Sie können verwenden ends with selector :

alert($('select[id$=_status]').find('option[value=1]').length);

Damit werden alle Auswahlfelder durchlaufen, die mit _status in ihre Kennungen und dann find wird verwendet, um zu finden option in ihnen, deren Wert auf 1 .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X