Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.javascript > #4782
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
|---|---|
| Newsgroups | de.comp.lang.javascript |
| Subject | Re: Arrayverarbeitung in Script bzw. Parameterübergaben in Funktionen |
| Date | 2016-11-11 13:25 +0100 |
| Organization | PointedEars Software (PES) |
| Message-ID | <3134228.LM0AJKV5NW@PointedEars.de> (permalink) |
| References | <o048ua$tkl$1@news.albasani.net> |
Heiko Wetteborn wrote:
> Da ich nicht für jedes Eingabefeld eine eigene JavaScript-Funktion
> erstellen will, die immer identisch sein wird,
Das brauchst Du auch nicht. (Wobei Du wahrscheinlich nicht „identisch“,
sondern „sehr ähnlich“ meinst.)
Du kannst entweder einen “bubbling” Event, also einen der im Dokumentbaum
nach oben verbreitet wird, an einer höheren Stelle im Dokumentbaum
behandeln; oder Du kannst dieselbe Funktion als Event-Listener für einen
oder mehrere Events einem oder mehreren Elementen hinzufügen.
Im ersteren Fall kannst Du die Funktion im Event-Handler-Attribut eines
gemeinsamen Vorfahren-Elements aufrufen; in beiden Fällen kannst Du entweder
die Methode addEventListener() von Element-Objekten aufrufen oder der .on…-
Eigenschaft der Objekte eine Referenz auf die Funktion als Wert zuweisen.
Letzteres solltest Du im Event-Listener für das DOMContentLoaded-Event des
Dokuments und, wenn dieser nicht aufgerufen wurde, in dem für das load-Event
des body-Elements tun.
> dachte ich mir, dass ich das ID-Tag immer gleich benenne und der Funktion
> den Index des Feldes mitgebe (siehe onblur).
Entsprechend Deinem Markup meinst Du das id-_Attribut_. Eine ID ist eine
*ID* (Identitätsiformation) weil sie im Dokumentkontext *eindeutig* sein
muss. Denselben Wert für das id-Attribut verschiedener Elemente im selben
Dokumentkontext anzugeben ist daher unzulässig bzw. ungültig. Dein übriges
HTML ist leider auch ungültig; Siehe auch <http://validator.w3.org/>.
> Und hier entstehen Probleme bzw. Fragen ...
>
> 1. Wie kann ich die Eingaben des zuletzt verlassenen Eingabefeldes
> herausbekommen? Mit var kontonummer =
> document.getElementById('konto[idx]').value; funktioniert es nämlich
> nicht.
Im Event-Listener für das blur-Event eines Eingabe-Steuerelements kannst Du
this.value auslesen. Dieses Event wird immer dann ausgelöst, nachdem ein
Steuerelement den Fokus verloren hat.
Es könnte auch genügen, stattdessen auf das change-Event zu reagieren; es
wird immer dann ausgelöst, wenn sich der Wert eines Steuerelements geändert
hat und es anschliessend den Fokus verloren hat. Das change-Event hat den
Vorteil, dass zumindest in modernen Benutzerprogrammen “bubbled” (siehe
oben).
> 2. Muss ich innerhalb der Tabelle im ID-Tag denn wirklich "konto[1]
> eingeben oder reicht ein einfaches konto[]?
Nein.
> 3. Bin ich überhaupt im Prinzip auf dem richtigen Weg, mein Problem zu
> lösen?
Nein. Du solltest zuerst die Grundlagen von HTML(5) und des DOM lernen, und
Dich mit Code-Richtlinien beschäftigen; dann kannst Du das Markup und den
clientseitigen Script-Code dafür leicht lesbar, verstehbar und somit leicht
wartbar schreiben. Viel Erfolg.
<https://developer.mozilla.org/de/Learn>
--
PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | ES Matrix: <http://PointedEars.de/es-matrix>
Please do not cc me. / Bitte keine Kopien per E-Mail.
Back to de.comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar
Arrayverarbeitung in Script bzw. Parameterübergaben in Funktionen Heiko Wetteborn <heiko2912@gmail.com> - 2016-11-11 12:07 +0100
Re: Arrayverarbeitung in Script bzw. Parameterübergaben in Funktionen Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-11 13:25 +0100
Re: Arrayverarbeitung in Script bzw. Parameterübergaben in Funktionen Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-11 14:20 +0100
csiph-web