Path: csiph.com!weretis.net!feeder4.news.weretis.net!feeder5.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Thomas 'PointedEars' Lahn Newsgroups: de.comp.lang.javascript Subject: Re: Arrayverarbeitung in Script bzw. =?UTF-8?B?UGFyYW1ldGVyw7xiZXJnYWJlbg==?= in Funktionen Date: Fri, 11 Nov 2016 13:25:06 +0100 Organization: PointedEars Software (PES) Lines: 67 Message-ID: <3134228.LM0AJKV5NW@PointedEars.de> References: Reply-To: Thomas 'PointedEars' Lahn Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8Bit X-Trace: solani.org 1478867107 15803 eJwFwYEBACAEBMCVEv80Dsn+I3QHpfC6ETQMZh72vpMPTGNIV57VhBYnptVNwuQ5SuvY0g8qHhEH (11 Nov 2016 12:25:07 GMT) X-Complaints-To: abuse@news.solani.org NNTP-Posting-Date: Fri, 11 Nov 2016 12:25:07 +0000 (UTC) User-Agent: KNode/4.14.2 Cancel-Lock: sha1:tk9hgmlAf/U5W2gJ7IUDdsZQR2g= X-NNTP-Posting-Host: eJwFwQkBwDAIA0BLZZBA5fAU/xJ2B6Ww3QgaFivfQM6ZEwp9xQ7n82K1r0FpeWPj1iCni/kDDS8ROQ== X-User-ID: eJwNxMkRwDAIBLCWuJYdygHb9F9CoofgqXkYiQws9pHhybvuesWwgWNnVBzWNVoCzVKy6z2fjhVBTYjx+v8HLjEULg== Xref: csiph.com de.comp.lang.javascript:4782 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 . > 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. -- PointedEars FAQ: | SVN: Twitter: @PointedEars2 | ES Matrix: Please do not cc me. / Bitte keine Kopien per E-Mail.