Mögliches Duplizieren: Die
Überprüfung eines bestimmten Optionsfelds ist aktiviert
Ich habe momentan diese 2 Optionsfelder, damit der Benutzer entscheiden kann, ob er im Preis enthaltenes Porto benötigt oder nicht:
<input type="radio" id="postageyes" name="postage" value="Yes" /> Yes
<input type="radio" id="postageno" name="postage" value="No" /> No
Ich muss Jquery verwenden, um zu überprüfen, ob das Optionsfeld "Ja" aktiviert ist, und wenn dies der Fall ist, eine Append-Funktion ausführen. Könnte mir bitte jemand sagen, wie ich das machen würde?
Vielen Dank für jede Hilfe
bearbeiten:
Ich habe meinen Code darauf aktualisiert, aber es funktioniert nicht. Mache ich etwas falsch?
<script type='text/javascript'>
// <![CDATA[
jQuery(document).ready(function(){
$('input:radio[name="postage"]').change(function(){
if($(this).val() == 'Yes'){
alert("test");
}
});
});
// ]]>
</script>
jquery
html
radio-button
Daniel H.
quelle
quelle
Antworten:
Oder das oben Gesagte - wieder - mit etwas weniger überflüssiger jQuery:
Überarbeitete (verbesserte) jQuery:
Code-Snippet anzeigen
JS Fiddle Demo .
Und außerdem ein mildes Update (da ich es bearbeitet habe, um sowohl Snippets als auch die JS Fiddle-Links einzuschließen), um die
<input />
Elemente mit<label>
s zu versehen - ermöglichen Sie das Klicken auf den Text, um das relevante zu aktualisieren<input />
- und ändern Sie die Mittel zum Erstellen des Inhalt zum Anhängen:JS Fiddle Demo .
Wenn Sie nur Inhalte anzeigen müssen, je nachdem, welches Element vom Benutzer überprüft wird, wird ein geringfügiges Update durchgeführt, mit dem die Sichtbarkeit mithilfe eines expliziten Ein- / Ausblendens umgeschaltet wird:
Und schließlich nur mit CSS:
JS Fiddle Demo .
Verweise:
:checked
Selektor .~
) combinator .appendTo()
.change()
.:checked
Selektor .filter()
.is()
.:radio
Selektor .remove()
.text()
.toggle()
.val()
.quelle
Versuche dies
quelle
Etwas wie das:
quelle
$(...).length
stattdessen verwenden.#postageyes:checked
oder$('#postageyes').is(':checked')
?is()
einen Booleschen Wert zurück. Der Anruf.length()
ist also kaputt. Aus den Dokumenten: "Im Gegensatz zu anderen Filtermethoden erstellt .is () kein neues jQuery-Objekt. Stattdessen können Sie den Inhalt eines jQuery-Objekts ohne Änderung testen." - api.jquery.com/isDadurch wird auf ein Optionsereignis in den Optionsfeldern gewartet. Wenn der Benutzer klickt
Yes
, wird das Ereignis ausgelöst und Sie können alles, was Sie möchten, an das DOM anhängen.quelle
quelle
quelle
$("#postageyes:checked"
immer true zurück? Müssten Sie das nicht verwenden,.length
damit es funktioniert?Versuche dies:
quelle
quelle
Dadurch wird das geänderte Ereignis abgehört. Ich habe die Antworten von anderen ausprobiert, aber diese haben bei mir nicht funktioniert und schließlich hat diese funktioniert.
quelle