Ich hatte den Eindruck, dass ich den Wert einer Auswahleingabe erhalten könnte, indem ich dies tue $(this).val();
und den onchange
Parameter auf das Auswahlfeld anwende.
Es scheint, dass es nur funktioniert, wenn ich auf die ID verweise.
Wie mache ich das damit?
.change()
stattdessen eine Verknüpfung verwenden.Dies funktioniert, wenn Sie unauffällig abonnieren (was der empfohlene Ansatz ist):
Wenn Sie
onselect
Markup verwenden und mit Skript mischen, müssen Sie einen Verweis auf das aktuelle Element übergeben:und dann:
quelle
Das wird mir geholfen.
Zur Auswahl:
Für Radio / Checkbox:
quelle
Probieren Sie die Ereignisdelegierungsmethode aus. Dies funktioniert in fast allen Fällen.
quelle
Sie können dies versuchen (mit jQuery ) -
Oder Sie können einfaches Javascript wie dieses verwenden.
quelle
quelle
Die Pfeilfunktion hat einen anderen Umfang als die Funktion und
this.value
gibt für eine Pfeilfunktion undefiniert an. Verwendung zu behebenquelle
Das hat bei mir funktioniert. Versuchte alles andere ohne Glück:
Entnommen aus Mozilla
quelle
Suchen Sie nach der jQuery- Site
HTML:
JAVASCRIPT:
Beispiel von jQuery:
So fügen Sie allen Texteingabeelementen einen Gültigkeitstest hinzu:
quelle
Rufen Sie für alle Auswahlen diese Funktion auf.
Für nur eine Auswahl:
quelle
jQuery ruft den Wert ausgewählter HTML-Elemente mit dem Ereignis "Ändern" ab
Für Demo & More Beispiel
quelle
Beachten Sie, dass dies möglicherweise daran liegt, dass das DOM nicht geladen wurde und Ihr Element noch nicht gefunden wurde, wenn diese nicht funktionieren.
Um dies zu beheben, platzieren Sie das Skript am Ende des Textes oder verwenden Sie das Dokument bereit
quelle
quelle
Lassen Sie mich ein Beispiel teilen, das ich mit BS4, Thymeleaf und Spring Boot entwickelt habe.
Ich verwende zwei SELECTs, bei denen das zweite ("Unterthema") durch einen AJAX-Aufruf basierend auf der Auswahl des ersten ("Thema") gefüllt wird.
Zunächst das Thymeleaf-Snippet:
Ich iteriere über eine Liste von Themen, die im Modellkontext gespeichert sind, und zeige alle Gruppen mit ihren Themen und danach alle Themen, die keine Gruppe haben. BaseIdentity ist übrigens ein @ Embedded Composite Key.
Hier ist die jQuery, die Änderungen verarbeitet:
Der erste Aufruf von change () stellt sicher, dass er beim erneuten Laden der Seite ausgeführt wird oder wenn ein Wert durch eine Initialisierung im Backend vorausgewählt wurde.
Übrigens: Ich verwende die "manuelle" Formularvalidierung (siehe "ist gültig" / "ist ungültig"), weil mir (und den Benutzern) nicht gefallen hat, dass BS4 nicht erforderliche leere Felder als grün markiert. Aber das ist nicht der Umfang dieses Q und wenn Sie interessiert sind, kann ich es auch posten.
quelle
Ich möchte hinzufügen, wer volle benutzerdefinierte Header-Funktionalität benötigt
quelle