Vor ungefähr einem Monat blieb Mitt's Frage unbeantwortet. Leider bin ich jetzt in der gleichen Situation.
http://api.jquery.com/change/#comment-133939395
Hier ist die Situation: Ich verwende jQuery, um die Änderungen in einem Optionsfeld zu erfassen. Wenn das Optionsfeld ausgewählt ist, aktiviere ich ein Bearbeitungsfeld. Wenn das Optionsfeld deaktiviert ist, möchte ich, dass das Bearbeitungsfeld deaktiviert wird.
Die Aktivierung funktioniert. Wenn ich ein anderes Optionsfeld in der Gruppe auswähle, wird das change
Ereignis nicht ausgelöst. Weiß jemand, wie man das behebt?
<input type="radio" id="r1" name="someRadioGroup"/>
<script type="text/javascript">
$("#r1").change(function () {
if ($("#r1").attr("checked")) {
$('#r1edit:input').removeAttr('disabled');
}
else {
$('#r1edit:input').attr('disabled', true);
}
});
</script>
javascript
jquery
html
radio-button
Antwarpes
quelle
quelle
id=r1
Antworten:
Die
change()
Funktion wird anscheinend nur aufgerufen, wenn Sie ein Optionsfeld aktivieren, nicht, wenn Sie es deaktivieren. Die Lösung, die ich verwendet habe, besteht darin, das Änderungsereignis an jedes Optionsfeld zu binden:Oder Sie können allen Optionsfeldern den gleichen Namen geben:
Hier ist ein funktionierendes jsfiddle-Beispiel (aktualisiert aus Chris Porters Kommentar).
Laut @ Rays Kommentar sollten Sie vermeiden, Namen mit
.
darin zu verwenden. Diese Namen funktionieren in jQuery 1.7.2, jedoch nicht in anderen Versionen ( Beispiel jsfiddle ).quelle
jquery Teil
Hier ist die DEMO
quelle
.attr('checked')
zu.prop('checked')
.Sie können alle Optionsfelder gleichzeitig mit Namen binden:
Arbeitsbeispiel hier: http://jsfiddle.net/Ey4fa/
quelle
Das funktioniert normalerweise bei mir:
if ($("#r1").is(":checked")) {}
quelle
Mein Problem war ähnlich und das hat bei mir funktioniert:
quelle
Angenommen, diese Optionsfelder befinden sich in a
div
, das die ID hat,radioButtons
und die Optionsfelder haben dann (zum BeispielcommonName
) denselben Namen :quelle
Das
change
Ereignis, das bei Abwahl nicht ausgelöst wird, ist das gewünschte Verhalten. Sie sollten einen Selektor über die gesamte Optionsgruppe und nicht nur über das einzelne Optionsfeld ausführen. Und Ihre Funkgruppe sollte den gleichen Namen haben (mit unterschiedlichen Werten)Betrachten Sie den folgenden Code:
Ich habe den gleichen Anwendungsfall wie Ihren, dh ein Eingabefeld anzuzeigen, wenn ein bestimmtes Optionsfeld ausgewählt ist. Wenn das Ereignis auch bei Abwahl ausgelöst würde, würde ich jedes Mal 2 Ereignisse erhalten.
quelle
Gleiches Problem hier, das hat gut funktioniert:
quelle
Mit Ajax hat für mich gearbeitet:
Html:
Javascript:
Und php:
quelle