Ich habe drei Optionsfelder mit demselben Namen und unterschiedlichen Werten. Wenn ich auf das dritte Optionsfeld klicke, werden das Kontrollkästchen und das Textfeld deaktiviert. Wenn ich jedoch zwei andere Optionsfelder auswähle, müssen sie angezeigt werden. Ich benötige die Hilfe in Jquery. Danke voraus ....
<form name="checkuserradio">
<input type="radio" value="1" name="userradiobtn" id="userradiobtn"/>
<input type="radio" value="2" name="userradiobtn" id="userradiobtn"/>
<input type="radio" value="3" name="userradiobtn" id="userradiobtn"/>
<input type="checkbox" value="4" name="chkbox" />
<input type="text" name="usertxtbox" id="usertxtbox" />
</form>
name
s kann identisch sein, aberid
s muss eindeutig sein.Antworten:
HTML
Javascript
quelle
i
wird vonfunction(i)
via JQuery's übergebeneach()
.i==2
wird verwendet, um auf das 3. Optionsfeld zuzugreifen. Siehe meine Codes.<span id="radiobutt">
- Cousin von RadioHead?Nicht wirklich notwendig, aber eine kleine Verbesserung des Codes von okw, die den Funktionsaufruf beschleunigen würde (da Sie die Bedingung außerhalb des Funktionsaufrufs verschieben).
quelle
Dieser Thread ist etwas alt, aber die Informationen sollten aktualisiert werden.
http://api.jquery.com/attr/
quelle
removeProp
für die deaktivierte Eigenschaft verwenden können. Die jQuery-Dokumente geben an,prop("disabled", false);
stattdessen zu verwenden . api.jquery.com/prop/#prop-propertyName-valueIch bin nicht sicher, warum einige dieser Lösungen .each () verwenden - es ist nicht notwendig.
Hier ist ein Arbeitscode, der deaktiviert wird, wenn das dritte Kontrollkästchen aktiviert wird. Andernfalls wird das deaktivierte Attribut entfernt.
Hinweis: Ich habe dem Kontrollkästchen eine ID hinzugefügt. Denken Sie auch daran, dass IDs in Ihrem Dokument eindeutig sein müssen. Entfernen Sie daher entweder die IDs auf den Radiobuttons oder machen Sie sie eindeutig
quelle
each()
wurde verwendet, weil wir das 3. Optionsfeld erhalten möchten. Wir können auch verwenden$("input[type=radio]:eq(2)")
. Ihre Methode identifiziert das Optionsfeld anhand des Werts, der natürlich auch gültig ist. :)Ich weiß, dass es keine gute Angewohnheit ist, eine alte Frage zu beantworten, aber ich gebe diese Antwort für Leute, die die Frage später sehen würden.
Der beste Weg, um den Status in JQuery zu ändern, ist jetzt durch
Bitte überprüfen Sie diesen Link für eine vollständige Illustration. Eingabe mit jQuery deaktivieren / aktivieren?
quelle
Ich hätte es etwas anders gemacht
Beachten Sie das Klassenattribut
Auf diese Weise müssen Sie sich keine Gedanken über das Ändern des Javascript machen, wenn Sie weitere Optionsfelder hinzufügen müssen
quelle
Ich vermute, Sie möchten wahrscheinlich ein "Klick" -Ereignis an eine Reihe von Optionsfeldern binden, den Wert des angeklickten Radiobuttons lesen und je nach Wert ein Kontrollkästchen und / oder ein Textfeld deaktivieren / aktivieren.
quelle
Es tut mir leid, dass ich so spät auf der Party bin, aber ich sehe hier Raum für Verbesserungen. Nicht in Bezug auf "Textbox deaktivieren", sondern in Bezug auf die Auswahl der Radionbox und die Vereinfachung des Codes, wodurch sie für spätere Änderungen etwas zukunftssicherer wird.
Zunächst sollten Sie nicht .each () verwenden und den Index verwenden, um auf ein bestimmtes Optionsfeld hinzuweisen. Wenn Sie mit einem dynamischen Satz von Optionsfeldern arbeiten oder anschließend einige Optionsfelder hinzufügen oder entfernen, reagiert Ihr Code auf das falsche Optionsfeld!
Als nächstes, aber das war wahrscheinlich nicht der Fall, als das OP erstellt wurde, bevorzuge ich .on ('click', function () {...}) anstelle von click ... http: //api.jquery. Komm schon/
Zu guter Letzt könnte auch der Code einfacher und zukunftssicherer gemacht werden, indem das Optionsfeld anhand seines Namens ausgewählt wird (der jedoch bereits in einem Beitrag enthalten ist).
Also habe ich den folgenden Code erhalten.
HTML (basierend auf dem Code von okw)
JS-Code
quelle
MVC 4 @ Html.CheckBoxFür im Allgemeinen möchten Benutzer beim Aktivieren und Deaktivieren des Kontrollkästchens mvc Maßnahmen ergreifen.
Sie können die ID für die Steuerelemente definieren, die Sie ändern möchten, und in Javascript die folgenden Schritte ausführen
Sie können die Eigenschaft auch wie ändern
quelle
Code-Snippet anzeigen
quelle
Ermitteln Sie den Wert der Optionsfelder und stimmen Sie mit jedem überein, wenn er 3 ist, und deaktivieren Sie ihn dann
checkbox and textbox
.quelle