onchange nicht bei leer ausführen
bearbeitet von Rolf ẞHallo Sophie,
1. Das change Event wird unabhängig vom Form gefeuert, deshalb greift required nicht
2. onchange - jaaaa - kann man machen. Ist aber Stil von 1999. Man schreibt heute eigenlich "unaufdringliches" (unobtrusive) Javascript, d.h. ein separates Script, das in einem Ready-Handler mit addEventListener einen Handler für das change Event registriert.
3. In dieser Handler-Funktion musst Du dann abfragen, ob Du einen Wert hast den Du nicht zum Server schicken willst. Rein deklarativ im HTML geht es meines Wissens nicht.
Wenn Du keinen Ready-Handler mit addEventListener-Registrierung schreiben willst, kannst Du auch bei onchange bleiben - ist ja deine Seite - und rufst darin eine Javascript-Funktion auf die Du in einem Script-Block anderswo auf der Seite notierst. Also z.B.
~~~
<input ... onchange="sendStatusValue(this)">
…
</input>
<script>
function sendStatusValue(statusSelect) {
// statusSelect ist das HTML Objekt für das Select-Element
// hier kannst Du den Wert abfragen und nach Bedarf selectElement.form.submit()
// aufrufen
}
~~~
Der EventHandler für eine addEventListener Registrierung sähe ähnlich aus, der bekommt nur automatisch ein "event" Objekt mit, bei dem Du im target-Property das Select-Element findest.
So, und nun kommt der SelfHTML-typische Sermon. Bei Nichtgefallen einfach ignorieren 😉.
Wenn Du doppelte Werte bekommst, solltest Du Dir aber auch Gedanken über dein UI-Design machen. Es ist nicht fehlertolerant. Change wird gefeuert sobald man einen Wert auswählt. Vielleicht war man zu hektisch oder verklickt sich. Und schwups hat man was geschickt was man nicht will. SELECT-Elemente mit Auto-Submit sind kontra-intuitiv. Das musst Du gegen den Komfort aufrechnen, nicht "speichern" drücken zu müssen. Vielleicht machst Du besser eine Liste aus Buttons. Oder doch einen Submit-Button, das ist intuitiver.
_Rolf_
--
Dosen sind silbern
onchange nicht bei leer ausführen
bearbeitet von Rolf ẞHallo Sophie,
1. Das change Event wird unabhängig vom Form gefeuert, deshalb greift required nicht
2. onchange - jaaaa - kann man machen. Ist aber Stil von 1999. Man schreibt heute eigenlich "unaufdringliches" (unobtrusive) Javascript, d.h. ein separates Script, das in einem Ready-Handler mit addEventListener einen Handler für das change Event registriert.
3. In dieser Handler-Funktion musst Du dann abfragen, ob Du einen Wert hast den Du nicht zum Server schicken willst.
Wenn Du keinen Ready-Handler mit addEventListener-Registrierung schreiben willst, kannst Du auch bei onchange bleiben - ist ja deine Seite - und rufst darin eine Javascript-Funktion auf die Du in einem Script-Block anderswo auf der Seite notierst. Also z.B.
~~~
<input ... onchange="sendStatusValue(this)">
…
</input>
<script>
function sendStatusValue(statusSelect) {
// statusSelect ist das HTML Objekt für das Select-Element
// hier kannst Du den Wert abfragen und nach Bedarf selectElement.form.submit()
// aufrufen
}
~~~
Der EventHandler für eine addEventListener Registrierung sähe ähnlich aus, der bekommt nur automatisch ein "event" Objekt mit, bei dem Du im target-Property das Select-Element findest.
So, und nun kommt der SelfHTML-typische Sermon. Bei Nichtgefallen einfach ignorieren 😉.
Wenn Du doppelte Werte bekommst, solltest Du Dir aber auch Gedanken über dein UI-Design machen. Es ist nicht fehlertolerant. Change wird gefeuert sobald man einen Wert auswählt. Vielleicht war man zu hektisch oder verklickt sich. Und schwups hat man was geschickt was man nicht will. SELECT-Elemente mit Auto-Submit sind kontra-intuitiv. Das musst Du gegen den Komfort aufrechnen, nicht "speichern" drücken zu müssen. Vielleicht machst Du besser eine Liste aus Buttons. Oder doch einen Submit-Button, das ist intuitiver.
_Rolf_
--
Dosen sind silbern