Kein Zugriff auf input Felder "recs[personinfo][zip]"

::emanuel::

Erfahrenes Mitglied
Hi Freunde!

Bei meinem Formular gibt es input Felder, die komischerweise folgenden Namen besitzen: "recs[personinfo][zip]" und "recs[personinfo][email]" - sorry, kann diese Namen leider nicht verändern!

So, nun möchte ich mit folgendem Script auf diese Felder zugreifen (zwecks Datenüberprüfung):

Code:
<script type="text/javascript">
function chkFormular () {
  if (document.Formular.recs[personinfo][email].value.indexOf("@") == -1) {
    alert("Keine gültige E-Mail-Adresse!");
    document.Formular.recs[personinfo][email].focus();
    return false;
  }
  if (document.Formular.recs[personinfo][email].value.indexOf(".") == -1) {
    alert("Keine gültige E-Mail-Adresse!");
    document.Formular.recs[personinfo][email].focus();
    return false;
  }
  var chkZ = 1;
  for (i = 0; i < document.Formular.recs[personinfo][zip].value.length; ++i)
    if (document.Formular.recs[personinfo][zip].value.charAt(i) < "0" ||
        document.Formular.recs[personinfo][zip].value.charAt(i) > "9")
      chkZ = -1;
  if (chkZ == -1) {
    alert("Nur Zahlen im Feld PLZ erlaubt!");
    document.Formular.recs[personinfo][zip].focus();
    return false;
  }
}
</script>

Leider funktioniert aber der Zugriff nicht.
Hab mit einem anderem Formular (wo natürlich auch die input Felder anders heißen) es probiert, die Funktion funktioniert an sich.

Kann es vielleicht an den eckicken Klammern liegen, dass kein Zugriff erfolgt?

Bitte helft mir!

Danke,

Emanuel
 
Wenn sein Formular den überaus kreativen namen "Formular" hat, ist document.Formular schon richtig., das kann man auch unter dem Link von dir, Biergamasda nachlesen:
selfhtml hat gesagt.:
Schema 2 / Beispiel 2:

document.Formularname.Eigenschaft
document.Formularname.Methode()

Ziel = document.Testformular.action;
document.Testformular.reset();

Ich glaube er hat es schon richtig erfasst und Javascript hat eher Probleme mit den Array-Klammern in den Namen der einzelnen Felder im Formular.

Ich würde mir an deiner Stelle mal die Fehlermeldung in der Javascript-Konsole deines Browsers anschauen. Im Mozilla unter "Tools" -> "Web Developement" -> "JavaScript Console", im IE in der Ecke unten links doppelklicken.

Die einfachste Möglichkeit ist es die einzelnen Elemente über document.Formular.elements['recs[personinfo][zip]'] anzusprechen oder kleine ihre Nummer zu nehmen document.Formular.elements[2]
 
Zuletzt bearbeitet:
oh, diese Möglichkeit hab ich ganz vergessen, tut mir Leid. :)

und, noch ne Idee.
Weis jetzt nicht wie das aufgebaut ist, und ob du die Namen aus Gründen von keinem Zugriff... oder aber aus Gründen von restlichem Script nicht ändern kannst/darfst, sollte es jedoch erlaubt sein und keine Aufwände machen, könntest du per Script die Namen ändern, Sollte meiner Meinung nach funktionieren, andre Idee hab ich leider (noch) keine :)

lg
 

Neue Beiträge

Zurück