Christoph: Problem mit JavaScript bei dynamischer Generierung

Moin!
Habe ein echtes Problem!
Und zwar habe ich auf meiner Seite folgendes Script:

<script language="JavaScript">
  <!--
  function checkme()
  {
   if(document.Bestellen.anzahl.value == "")
   {
    alert("Also ich würde keine leere Menge bestellen...");
    document.Bestellen.anzahl.focus();
       return false;
   }
   if(document.Bestellen.anzahl.value <= 0)
   {
    alert("Aha, 0 Artikel also ;-)");
    document.Bestellen.anzahl.focus();
       return false;
   }
   var chk = 1;
    for(i=0;i<document.Bestellen.anzahl.value.length;++i)
      if(document.Bestellen.anzahl.value.charAt(i) < "0"
      || document.Bestellen.anzahl.value.charAt(i) > "9")
       chk = -1;
    if(chk == -1) {
       alert("Buchstaben machen hier auch keinen Sinn ;-)");
       document.Bestellen.anzahl.focus();
      return false;
     }
  }
  //-->
  </script>

Das Formular wird onSubmit überprüft und das funzt auch. Nur wird die Seite dynamisch generiert und wenn es mehr als einen Artikel gibt, gibt es auch mehr als ein Formular das "Bestellen" heisst. Das kriegt das Script leider net so ganz verarbeitet. Fehlermeldung:
document.Bestellen.anzahl.value ist kein Objekt oder null

Hat einer von euch ne Idee wie ich das lösen kann?
Gruss,
Christoph

  1. Das Formular wird onSubmit überprüft und das funzt auch. Nur wird die Seite dynamisch generiert und wenn es mehr als einen Artikel gibt, gibt es auch mehr als ein Formular das "Bestellen" heisst. Das kriegt das Script leider net so ganz verarbeitet. Fehlermeldung:
    document.Bestellen.anzahl.value ist kein Objekt oder null

    Hat einer von euch ne Idee wie ich das lösen kann?

    Du kanst beim onsubmt die Refrenz auf das Formular direkt mitgeben:

    <form onsubmit)"checkme(this)" ....>

    und damit hast du dann die Möglihkeit in der Funktion direkt auf das Formular zu zugreifen.

    Struppi.

    1. Hi!
      Danke für die Antwort.

      <form onsubmit)"checkme(this)" ....>

      Das funzt leider net...

      1. Hi!
        Danke für die Antwort.

        <form onsubmit)"checkme(this)" ....>
        Das funzt leider net...

        Das funktioniert einwandfrei in allen Browsern die ich kenne.
        Wenn etwas nicht funktkioniert, ist eine Fehlerbeschreibung sinnvoll.

        BZW, hast vermutlich vergessen, deine Funktion entsprechend anzupassen.

        function checkme(form)
          {
           if(form.anzahl.value == "")
           {
            alert("Also ich würde keine leere Menge bestellen...");
            form.anzahl.focus();
               return false;
           }
        ....

        Struppi.

  2. Hi Christoph,

    Das Formular wird onSubmit überprüft und das funzt auch. Nur wird die Seite dynamisch generiert und wenn es mehr als einen Artikel gibt, gibt es auch mehr als ein Formular das "Bestellen" heisst.

    if(document.Bestellen.anzahl.value == "")

    Du kannst das Forms-Objekt auch über den Index ansprechen.
    if(document.forms[0].anzahl.value == "")

    http://selfhtml.teamone.de/javascript/objekte/forms.htm#allgemeines

    HTH

    Jochen

    1. Moin Jochen!
      Auch net schlecht...aber ich weiss ja nie wieviele Felder es geben wird! Also wenn ich mich net irre kann ich dann auch net im voraus den Index ansprechen, oder?
      Gruss,
      Christoph

      1. Moin Jochen!
        Auch net schlecht...aber ich weiss ja nie wieviele Felder es geben wird! Also wenn ich mich net irre kann ich dann auch net im voraus den Index ansprechen, oder?

        Doch natürlich weißt du wieviele es geben wird: document.forms.length sagt dir es, aber meine variante ist wesentlich flexibler.

        Struppi.