Ergebnis 1 bis 6 von 6
-
25-12-2006, 20:21 #1
Grünschnabel
- registriert
- 30-07-2006
- Beiträge
- 4
Funktion auf Array anwenden und auf Arrayelemente zugreifen
Hallo,
Ich habe ein Problem mit JS.
Folgendes habe ich mir gebastelt um on the fly ne Rechnung auszugeben
Code:<script type="text/javascript"> function zaehler(){ var WertA = document.form2.wert1.value; var WertB = document.form2.wert2.value; var WertC = document.form2.wert3.value; var WertD = document.form2.wert4.value; document.form2.flaeche.value=WertA*1 + WertB*1 + WertC*1 + WertD*1; } </script>
Die Felder wert1[], wert2[] usw. anwendem will, also wert1, wert2, wert3, wert4 und flaeche sind jeweils ein Array.
Ich dachte mir nun sowas
Code:<input type='text' name='wert1[]' onKeyUp='zaehler();' /> <input type='text' name='wert2[]' onKeyUp='zaehler();' /> <input type='text' name='wert3[]' onKeyUp='zaehler();' /> <input type='text' name='wert4[]' onKeyUp='zaehler();' /> <input type='text' name='flaeche[]' onKeyUp='zaehler();' />
Code:<script type="text/javascript"> function zaehler(){ var WertA = document.form2.wert1[].value; var WertB = document.form2.wert2[].value; var WertC = document.form2.wert3[].value; var WertD = document.form2.wert4[].value; document.form2.flaeche[].value=WertA*1 + WertB*1 + WertC*1 + WertD*1; } </script>
Da ich eine Variable habe, die hochgezählt wird, dachte ich dann an sowas:
Code:<input type='text' name='wert1[".$i."]' onKeyUp='zaehler(".$i.");' /> <input type='text' name='wert2[".$i."]' onKeyUp='zaehler(".$i.");' /> <input type='text' name='wert3[".$i."]' onKeyUp='zaehler(".$i.");' /> <input type='text' name='wert4[".$i."]' onKeyUp='zaehler(".$i.");' /> <input type='text' name='flaeche[".$i."]' onKeyUp='zaehler(".$i.");' />
Code:<script type="text/javascript"> function zaehler(id){ var WertA = document.form2.wert1[id].value; var WertB = document.form2.wert2[id].value; var WertC = document.form2.wert3[id].value; var WertD = document.form2.wert4[id].value; document.form2.flaeche[id].value=WertA*1 + WertB*1 + WertC*1 + WertD*1; } </script>
danke Alex
-
25-12-2006, 20:37 #2
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: Funktion auf Array anwenden und auf Arrayelemente zugreifen
SELFHTML: JavaScript / Objektreferenz / elements (Beispiel 4)
-
25-12-2006, 21:31 #3
Grünschnabel
- registriert
- 30-07-2006
- Beiträge
- 4
AW: Funktion auf Array anwenden und auf Arrayelemente zugreifen
Ich liebe solche Posts und fasse mich manchmal auch so knapp, nun weiß ich wie beschissen sich die Leser fühlen müssen.
Ich habe mal etwas weiter gebastelt:
Code:<script type="text/javascript"> function zaehler(id){ var WertA = document.form2["wert1[id]"].value; var WertB = document.form2["wert2[id]"].value; var WertC = document.form2["wert3[id]"].value; var WertD = document.form2["wert4[id]"].value; document.form2["flaeche[id]"].value=WertA*1 + WertB*1 + WertC*1 + WertD*1; } </script>
Code:<input type='text' name='wert1[".$B_z."]' onKeyUp='zaehler(".$B_z.");' /> <input type='text' name='wert2[".$B_z."]' onKeyUp='zaehler(".$B_z.");' /> <input type='text' name='wert3[".$B_z."]' onKeyUp='zaehler(".$B_z.");' /> <input type='text' name='wert4[".$B_z."]' onKeyUp='zaehler(".$B_z.");' /> <input type='text' name='flaeche[".$B_z."]' onKeyUp='zaehler(".$B_z.");' />
Mein Problem ist nun folgendes:
Wenn ich das oben gezeigt Konstrukt aus 5 Input Feldern nur einmal brauchen würde, würde die Funktion funktionieren.
Das sähe dann so aus:
Code:<script type="text/javascript"> function zaehler(){ var WertA = document.form2.wert1.value; var WertB = document.form2.wert2.value; var WertC = document.form2.wert3.value; var WertD = document.form2.wert4.value; document.form2.flaeche.value=WertA*1 + WertB*1 + WertC*1 + WertD*1; } </script>
Code:<input type='text' name='wert1' onKeyUp='zaehler();' /> <input type='text' name='wert2' onKeyUp='zaehler();' /> <input type='text' name='wert3' onKeyUp='zaehler();' /> <input type='text' name='wert4' onKeyUp='zaehler();' /> <input type='text' name='flaeche' onKeyUp='zaehler();' />
Das Problem ist, dass wert1, wert2, wert3, wert4 und flaeche alle samt jeweils ein Array sind.
Das heisst ich habe dann im Quellcode folgendes stehen:
Code:<input type='text' name='wert1[0]' onKeyUp='zaehler(0);' /> <input type='text' name='wert2[0]' onKeyUp='zaehler(0);' /> <input type='text' name='wert3[0]' onKeyUp='zaehler(0);' /> <input type='text' name='wert4[0]' onKeyUp='zaehler(0);' /> <input type='text' name='flaeche[0]' onKeyUp='zaehler(0);' />
Code:<script type="text/javascript"> function zaehler(id){ var WertA = document.form2.wert1[id].value; var WertB = document.form2.wert2[id].value; var WertC = document.form2.wert3[id].value; var WertD = document.form2.wert4[id].value; document.form2.flaeche[id].value=WertA*1 + WertB*1 + WertC*1 + WertD*1; } Ich finde es so, wie ich es geschrieben habe absolut logisch, doch es funzt nicht. Vielleicht bin ich verwöhnt von PHP und JS ist einfach zu kompliziert oder so. Ich finde es nett, dass sich jemand die Mühe macht und sich diesen Thread anguckt , nur leider bringt mir das Posten eines einfachen Links nichts... mfg Alex </script>
-
25-12-2006, 21:38 #4pit-r Guest
AW: Funktion auf Array anwenden und auf Arrayelemente zugreifen
Moin!
Zitat von Al3x0r
Hier im Klartext und etwas kürzer:
var WertA=document.form2['wert1['+id+']'].value;
Ahoi - Pit
-
26-12-2006, 00:01 #5
Grünschnabel
- registriert
- 30-07-2006
- Beiträge
- 4
AW: Funktion auf Array anwenden und auf Arrayelemente zugreifen
Funktioniert perfekt, vielen herzlichen dank. Ich könnte mit dem Fachchinesisch aber ernsthaft nichts anfangen...
-
26-12-2006, 00:10 #6
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: Funktion auf Array anwenden und auf Arrayelemente zugreifen
Was für Fachchinesisch ?
Mit dem Namen des Formulars und des Elements als Indexnamen (wie in Schema 4 / Beispiel 4)
Diese Art ist eine zu Schema 3 äquivalente Schreibweise, denn in JavaScript ist das Ansprechen von Unterobjekten über objekt.unterobjekt gleichwertig zu objekt["unterobjekt"]. Geben Sie mit document.forms["Formularname"].elements["Elementname"] den Namen des Formulars und des Elements als String an. Diese Schreibweise wird insbesondere für den Zugriff auf Formularelemente benötigt, deren Namen Sonderzeichen enthalten, welche den Zugriff nach Schema 2 und 3 unmöglich machen. Sie können zwischen den eckigen Klammern auch eine String-Variable notieren, die den Formularnamen bzw. den Elementnamen enthält.
Ähnliche Themen
-
Slideshow-Script mit Zeitänderung und Zufallsmodus
Von Lommel im Forum JavaScriptAntworten: 8Letzter Beitrag: 16-02-2007, 01:12 -
warum kommt hier undefined als ergebnis?
Von Jemand im Forum JavaScriptAntworten: 11Letzter Beitrag: 28-04-2004, 13:50 -
PHP - Array: Dimensionen Vertauschen? PHP-Operation auf 2.Dim anwenden?
Von Steve im Forum Serverseitige ProgrammierungAntworten: 3Letzter Beitrag: 18-09-2002, 18:12 -
auf input => array zugreifen
Von Daimonion im Forum JavaScriptAntworten: 3Letzter Beitrag: 31-08-2002, 13:31 -
aus LAyer auf Funktion zugreifen: Netscape bockt!!
Von alex75 im Forum JavaScriptAntworten: 3Letzter Beitrag: 21-07-2001, 10:53
Lesezeichen