Aktivieren und Deaktivieren von Optionsfeldern Je nach Auswahl des Benutzers
Ich bin auf der Suche zu schreiben, jQuery um nur aktivieren, radio-buttons, je nachdem, welche radio-buttons ausgewählt ist, in übereinstimmung mit einigen business-Logik.
Im wesentlichen gibt es 3 Gruppen von 3 radio-buttons, die am Ende der Suche etwas wie (ich entschuldige mich für die ausführlich mit diesem Beispiel HTML, aber hoffe, dies wird zeigen, was ich meine):
<p>
<label for="group_one">Group One</label>
</p>
<p>
<div class="group_one">
<div id="group_one_choice_one">
<label for="group_one_choice_one">Choice One</label>
<br />
<input checked="checked" id="choice_one" type="radio" value="1" />
<br />
</div>
<div id="group_one_choice_two">
<label for="group_one_choice_two">Choice Two</label>
<br />
<input id="group_one_choice_two" type="radio" value="2" />
<br />
</div>
<div id="group_one_choice_three">
<label for="group_one_choice_three">Choice Three</label>
<br />
<input id="choice_three" type="radio" value="3"/ >
<br />
</div>
</div>
</p>
<p>
<label for="group_two">Group Two</label>
</p>
<p>
<div class="group_two">
<div id="group_two_choice_one">
<label for="group_two_choice_one">Choice One</label>
<br />
<input checked="checked" id="choice_one" type="radio" value="1" />
<br />
</div>
<div id="group_two_choice_two">
<label for="group_two_choice_two">Choice Two</label>
<br />
<input id="group_two_choice_two" type="radio" value="2" />
<br />
</div>
<div id="group_two_choice_three">
<label for="group_two_choice_three">Choice Three</label>
<br />
<input id="choice_three" type="radio" value="3"/ >
<br />
</div>
</div>
</p>
<p>
<label for="group_three">Group Three</label>
</p>
<p>
<div class="group_three">
<div id="group_three_choice_one">
<label for="group_three_choice_one">Choice One</label>
<br />
<input checked="checked" id="choice_one" type="radio" value="1" />
<br />
</div>
<div id="group_three_choice_two">
<label for="group_three_choice_two">Choice Two</label>
<br />
<input id="group_three_choice_two" type="radio" value="2" />
<br />
</div>
<div id="group_three_choice_three">
<label for="group_three_choice_three">Choice Three</label>
<br />
<input id="choice_three" type="radio" value="3"/ >
<br />
</div>
</div>
</p>
Wo es schwierig wird, ist die Logik, die nötig ist, um zu bestimmen, welche radio-buttons angezeigt werden sollen und welche zu aktivieren sind. Ein Benutzer muss wählen Sie eine Wahl aus jeder Gruppe, aber nicht wiederholt die gleiche Wahl von einer Gruppe zur anderen.
Idealerweise, wenn der Benutzer bekommt die Seite, die alle von den radio-buttons wäre verfügbar, aber deaktiviert.
Wenn der Benutzer zuerst wählen Sie (zum Beispiel) die Wahl von Zwei in Gruppe Drei, der Skript sollte dann deaktivieren Sie die Wahl Zwei in Gruppe Eins und Gruppe Zwei. Wenn der Benutzer wählt dann die Wahl, Drei in der Gruppe Zwei sollte es dann nur aktivieren, Auswahl Eines in der Gruppe, und so weiter.
Jede Hilfe wäre sehr, sehr dankbar. Ich würde die post-jQuery ich habe zu schreiben versucht, dieses problem zu lösen, aber ich glaube nicht, ich habe schon über das sehr gut und würde gerne jedem helfen, Arbeit durch Sie. Danke!
Sind Sie sicher, dass radio-buttons sind die Antwort hier und nicht Checkboxen
InformationsquelleAutor btw | 2009-08-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde überspringen der speziellen Klassen.
Je nach Ihren Anforderungen müssen Sie möglicherweise nicht die Letzte Zeile - es ist nur re-aktiviert die aktuelle radio. Dein html ist auch fehlende Namen für Ihr radio-buttons.
InformationsquelleAutor Andy Gaskell
Könnten Sie in der Lage sein, etwas zu verwenden, wie (ich noch nicht getestet, es ist nur um den ball ins Rollen...)
Die Idee ist: wenn Sie auf ein radio, deaktivieren Sie alle radios in allen Gruppen mit diesem Wert, außer die, die gerade geklickt.
InformationsquelleAutor JJ Geewax
Getan & getestet, hier ist die jQuery:
und die modded-markup:
Änderungen am markup:
DIV
ID
s.ID
Attribute derradios
NAME
sich so Verhalten wieradio-buttons.
InformationsquelleAutor karim79
Erstens, Sie wirklich shoudln keine doppelten ids im code.
Möchte ich alle IDs einzigartig, und geben Sie dann Ihren radioboxes der name einer Klasse -
class="choice_three"
zum Beispiel.Geben Sie Ihrem divs eine id, die Auswahl nach einer id ist schneller als die Klasse, so
id="group_three"
zum Beispiel.Dann wählen Sie eine Optionsschaltfläche aus, einfach den folgenden code verwenden:
Beachten Sie das Leerzeichen zwischen #group_three und .choice_three ist wichtig.
Oder noch schneller:
Andere Sache zu beachten, wie auch die Bezeichnung "für" sollte für die radio-Taste, nicht die div.
.attr("disabled, "disabled");
segment bedeutet?Dies ist die Art und Weise können Sie ein Attribut deaktiviert werden
danke, ...gibt es einen Grund, dass
"disabled"
erscheint zweimal?Ja, wenn Sie ein element auf disabled in HTML das richtige markup ist disabled="disabled". In jQuery, .attr() können 2 Parameter, Attribut-Namen und Attribut-Wert. In dem oben sind wir die Einstellung "disabled" - Attribut auf "deaktiviert".
InformationsquelleAutor James Wiseman
Wenn Sie hinzufügen, speial-Klassen, um die gleichen Optionen, wie z.B. class="choice_one", und dann in der Ereignisprozedur können Sie:
InformationsquelleAutor Zed