Anton: Formularnamen in xhtml strict nicht erlaubt

Guten Tag,

folgendes Problem:

Es gibt eine Javascript Funktion die testet, ob eine EIngabe in einem Formular eine Zahl ist:

function ZahlChecker() {
    var i;
    var ok = true;

for (i=0; i<document[2]['anzahlNeu[]'].length; i++) {

if (document[2]['anzahlNeu[]'][i].value.charAt(0) < "0" ||
            document[2]['anzahlNeu[]'][i].value.charAt(0) > "9" ||
            document[2]['anzahlNeu[]'][i].value.charAt(1) < "0" ||
            document[2]['anzahlNeu[]'][i].value.charAt(1) > "9") {
            ok = false;
        }
    }

if (ok == false) {
        alert("Bitte nur Zahlen eingeben !");
    }

return ok;
}

Diese wird so aufgerufen:
 <form action="shoppingcard.php" method="post" onsubmit="return ZahlChecker()">

Da ich nun aber xhtml strict benutze, darf man ja den Formularen ja keine Namen mehr geben. Wie soll soll ich aber nun das Formular ansprechen ?

Bekomme ständig die Fehlermeldung:

dockument[2].anzahlNeu ist Null oder kein Objekt.

Hier kann man es testen:

http://217.160.40.241/pages/catalog.php?product_id=1

  1. Hi,

    for (i=0; i<document[2]['anzahlNeu[]'].length; i++) {

    hälst Du "document[2]" wirklich für eine sinnvolle Schreibweise? Rein technisch betrachtet handelt es sich dabei um das dritte document-Objekt.

    <form action="shoppingcard.php" method="post" onsubmit="return ZahlChecker()">
    Da ich nun aber xhtml strict benutze, darf man ja den Formularen ja keine Namen mehr geben. Wie soll soll ich aber nun das Formular ansprechen ?

    Durch Übergabe von "this".

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Wie genau muss das mit "this" aussehen ?

      Danke.

  2. Hallo,

    Wie soll soll ich aber nun das Formular ansprechen ?

    über die entsprechende ID. Benutze also id= anstelle von name=

    Gruß,
    _Dirk

    1. Hallo!

      Wie soll soll ich aber nun das Formular ansprechen ?

      über die entsprechende ID. Benutze also id= anstelle von name=

      IMHO steigt NS4.x mit ID aus.
      Für Rückwärtskompatibilität bleibt nur die doppelte Angabe id="foo" name="foo" unter XHTML 1.0 Transitional (da ist das name-Attribut für den form-tag noch erlaubt) oder die Methode von Cheatah und Struppi.

      mfg Alfie

  3. Es gibt eine Javascript Funktion die testet, ob eine EIngabe in einem Formular eine Zahl ist:

    das geht einfacher, indem du die Eingabe in eine Zahl umwandelst und dann mit der ursprünglichen Eingabe vergleichst. Da du keine kommazahlen zuläßt, ganz einfach:

    var input = [...];
    var test = parseInt(input);

    if(input != test) { falsche Eingabe };

    Diese wird so aufgerufen:
    <form action="shoppingcard.php" method="post" onsubmit="return ZahlChecker()">

    Da ich nun aber xhtml strict benutze, darf man ja den Formularen ja keine Namen mehr geben. Wie soll soll ich aber nun das Formular ansprechen ?

    Mit this

    <form action="shoppingcard.php" method="post" onsubmit="return ZahlChecker(this);">

    function ZahlChecker(form)
    {
    und hier kannst du aif die Elemente zugreifen.
    }

    Struppi.