Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.javascript > #4782

Re: Arrayverarbeitung in Script bzw. Parameterübergaben in Funktionen

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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