Variable einbinden = Fehler
Nicole
- javascript
Hallo erst mal ;-),
wahrscheinlich ist das folgende Problem
zutiefst simple, aber Javascript ist halt
nicht mein Ding und gerade auf die simpelsten
Sachen findet man keine Antworten im Netz.
Also eine Reihe von Formularen soll auf onklick
keinen Value haben:
Natürlich kein Problem:
<input type="button" name="v" onclick="jsid1.value='';">
<textarea name="xy" id="jsid1" cols="60" rows="2">
blabla
</textarea>
Jetzt wollte ich aber dass alle Textareas leer werden,
also Funktion geschrieben die ich später in eine
Schleife ändern will:
---------------
function clearall()
{
var i=1;
document.form1.jsid1.value='';
}
-----------------------
soweit klappts auch mit jsid1, aber will ich das variabel haben
document.form1.jsid+i+.value='';
gehts nicht.
Ich mache wahrscheinlich etwas verkehrt wie ich diese Variable einbinde, aber wie gesagt ich kenne nur diese Methode mit "+".
Wer kennt sich aus ?
Gruss Nikki
p.s.
Am Ende soll die Funktion alle Textfelder leer machen.
Da ´mir nichts besseres als eine Schleife einfällt,
hat viell. Jemand auch dafür eine Bessere Lösung.
------
function clearall()
{
for (var i=1; i<=100; i++)
{document.form.jsid.+i+.value='';}
}
-----
document.form1.jsid+i+.value='';
^^^^^^^elements["jsid"+i].value, vorausgesetzt, der _name_ des Elements ist so. Sonst greifst Du nicht über das Formular, sonder über die Elements-Collection des DOM darauf zu (getElementById(String))
Hallo SSchumann,
danke für die schnelle Hilfe.
(Da muss man erst mal drauf kommen, deshalb liebe ich PHP ;-)
Jetzt habe ich aber noch folgendes Problem:
------------------------------------------
Habe die Funktion:
function clearall()
{
for (var i=1; i<=10; i++) {document.form1.elements["jsid"+i].value='';}
}
----------------
Klappt auch solange das Textfeld(id=jsid...) existiert.
Da ich aber die Textfelder variabel erstellen lasse (php;-)
sind nicht immer alle jsid vorhanden. Und sobald natürlich
eines nicht vorhanden ist versagt die Funktion.
Was kann ich machen ?
Gruss Nikki
document.form1.jsid+i+.value='';
^^^^^^^elements["jsid"+i].value, vorausgesetzt, der _name_ des Elements ist so. Sonst greifst Du nicht über das Formular, sonder über die Elements-Collection des DOM darauf zu (getElementById(String))
Klappt auch solange das Textfeld(id=jsid...) existiert.
Da ich aber die Textfelder variabel erstellen lasse (php;-)
sind nicht immer alle jsid vorhanden. Und sobald natürlich
eines nicht vorhanden ist versagt die Funktion.
Frag ab, ob das Formularelement existiert (d.f.e != null oder typeof d.f.e != "undefined")
Danke schön ;-)
Falls jemand das mal brauchen sollte poste ichs hier:
<script language="JavaScript" type="text/javascript">
<!--
function clearall(){
for (var i=1; i<=300; i++) {
if(typeof document.form1.elements["jsid"+i] != "undefined")
{document.form1.elements["jsid"+i].value='';}}
}
// -->
</script>
Aufruf z.B.
<a href="#" onclick="javascript:clearall();">clear</a>
Gruss Nikki
Klappt auch solange das Textfeld(id=jsid...) existiert.
Da ich aber die Textfelder variabel erstellen lasse (php;-)
sind nicht immer alle jsid vorhanden. Und sobald natürlich
eines nicht vorhanden ist versagt die Funktion.Frag ab, ob das Formularelement existiert (d.f.e != null oder typeof d.f.e != "undefined")
hi,
Falls jemand das mal brauchen sollte poste ichs hier:
dann aber bitte _fehlerfrei_!
Aufruf z.B.
<a href="#" onclick="javascript:clearall();">clear</a>
das ist murks.
das label javascript: hat in einem eventhandler nichts verloren, es muss onclick="clearall();" heissen.
und href="#" ist ebenfalls murks.
gebe hier eine sinnvolle alternative ressource für besucher mit deaktiviertem javascript an - oder verwende gar nicht erst einen link, sondern setze onclick auf einem anderen element ein.
gruss,
wahsaga