String mit Zahl verknüpfen

Soapp

Erfahrenes Mitglied
Mithilfe einer Schleife+Counter lasse ich in PHP verschiedenen Textareas ausgeben, die ich
dann auf Länge des Textes prüfen will.
Die Funktion ist gekürzt. Es geht mir nur um das Verständnis warum
das mit var a nicht funktioniert. Der Javascript Debugger von Firefox sagt:
Fehler: Target.a has no properties


function CheckLenn(Target,maxlength,counter)
{
var a = "TEXT" + counter;
StrLen=Target.a.value.length;
alert(StrLen);
}

Das steht direkt in der Html-datei nach der Erzeugung durch PHP:

<TEXTAREA name ="TEXT1"
onblur='CheckLenn("zaehlformular1",2500,1)'
onfocus='CheckLenn("zaehlformular1",2500,1)'
onKeyUp='CheckLenn("zaehlformular1",2500,1)'
onKeyDown='CheckLenn("zaehlformular1",2500,1)'
>

HELP!


Danke, danke, danke

Soapp
 
Ganz einfach: Die Variable, die du "a" genannt hast hat z.B. den Inhalt "TEXT9" (wenn die Variable mit Namen "Counter" auf 9 gesetzt ist). "TEXT9" ist und bleibt aber ein Objekt vom Typ String. Somit hat es nur die Eigenschaften und Methoden, die jeder andere Sting auch hat. Ein String hat kein Value.
Nur weil du willst, dass Javascript so funktioniert, wie du es dir denkst, wird es das noch lange nicht tun. Das was du willst kannst du z.B. so erreichen:
HTML:
function CheckLenn(Target,maxlength,counter) {
    alert(document.getElementsByName("TEXT"+ counter)[0].value.length);
}
Die Funktion getElementsByName() erwartet als Argument ein Objekt vom Typ String. Daher sollte das eigentlich funktionieren, sofern dein Formular nicht sehr abweichend von der Norm aufgebaut ist und solange es keine anderen Elemente mit dem Namen gibt.
 
con-f-use hat gesagt.:
Ganz einfach: Die Variable, die du "a" genannt hast hat z.B. den Inhalt "TEXT9" (wenn die Variable mit Namen "Counter" auf 9 gesetzt ist). "TEXT9" ist und bleibt aber ein Objekt vom Typ String. Somit hat es nur die Eigenschaften und Methoden, die jeder andere Sting auch hat. Ein String hat kein Value.
Nur weil du willst, dass Javascript so funktioniert, wie du es dir denkst, wird es das noch lange nicht tun. Das was du willst kannst du z.B. so erreichen:
HTML:
function CheckLenn(Target,maxlength,counter) {
    alert(document.getElementsByName("TEXT"+ counter)[0].value.length);
}
Die Funktion getElementsByName() erwartet als Argument ein Objekt vom Typ String. Daher sollte das eigentlich funktionieren, sofern dein Formular nicht sehr abweichend von der Norm aufgebaut ist und solange es keine anderen Elemente mit dem Namen gibt.


danke für die ausführliche Erklärung ! :)
Javascript ist halt doch ein wenig anderes als PHP.


Soapp
 

Neue Beiträge

Zurück