onChange event
felix
- javascript
Hi zusammen.
Also ich habe folgendes Problem.
Ich benutze ein onChange Event im formular. Das funktioniert auch so im IE6. Nur leider geht das nicht unter Mozilla, Opera. Habe ich irgendwie was falsch definiert?
Als Fehler bringt mit der Mozilla Firefox folgendes:
Fehler: document.getElementById("add_k_1") has no properties
Der Witz dabei ist, das das so natürlich nicht geht wegen dem "add_k_1". Das muss 'add_k_1' heißen. Gucke ich jedoch in den Quellcode so steht das mit ' da.
Hier meine Definition:
<input type="text" onChange="document.getElementById('add_k_1').value=document.getElementById('add_b_1').value*190;" name="add_b_1" value="" style="width:90px;">
<input type="text" name="add_k_1" value="" style="width:90px;"></span><br>
Vielen Dank,
Felix
Hi,
Fehler: document.getElementById("add_k_1") has no properties
<input type="text" onChange="document.getElementById('add_k_1').value=document.getElementById('add_b_1').value*190;" name="add_b_1" value="" style="width:90px;">
<input type="text" name="add_k_1" value="" style="width:90px;"></span><br>
Und wo ist jetzt da ein Element mit id="add_k_1"? Ich seh nur eines mit name="add_k_1".
cu,
Andreas
Und wo ist jetzt da ein Element mit id="add_k_1"? Ich seh nur eines mit name="add_k_1".
Ähhh ... stimmt eigentlich. HAtte ich mir auch schon gedacht, nur wurde mir das weiter unten im Forum empfohlen, dass ich das mit getElementById nehmen soll. Das hatte ja auch unter IE gefunzt.
Jetzt habe ich das so hinbekommen:
<input type="text" onChange="document.getElementsByName('add_k_1')[0].value=document.getElementsByName('add_b_1')[0].value*190;" name="add_b_1" value=""><input type="text" name="add_k_1" value="">
Vielen Dank für den hinweis.
Grüße, Felix
Hallo,
Jetzt habe ich das so hinbekommen:
<input type="text" onChange="document.getElementsByName('add_k_1')[0].value=document.getElementsByName('add_b_1')[0].value*190;" name="add_b_1" value=""><input type="text" name="add_k_1" value="">
In einem Formular kann man sich die Element-Referenzierung per document.getElement... sparen. Es gibt die forms-Collection http://de.selfhtml.org/javascript/objekte/forms.htm von der aus kann man das Formular erreichen. Das Formular hat eine elements-Collection http://de.selfhtml.org/javascript/objekte/elements.htm von der aus kann man einzelne Elemente über ihren Namen erreichen. Ein Element kann über die Eigenschaft form http://de.selfhtml.org/javascript/objekte/elements.htm#form auf das Formular zurückgreifen, in dem es liegt.
Wenn Dein INPUT-Element mit dem Namen "add_k_1" bereits ein Element im selben Formular ist, wie Dein INPUT-Element mit dem Namen "add_b_1", dann:
<input type="text" onchange="this.form.elements['add_k_1'].value=parseInt(this.value, 10)*190;" name="add_b_1" value=""><input type="text" name="add_k_1" value="">
Zu der Bezugnahme auf das aktuelle Objekt mit this: http://de.selfhtml.org/javascript/sprache/objekte.htm#this
Zu parseInt() http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_int
viele Grüße
Axel