andi: form.submit mit Javascript

Ich habe folgende Seite (HTML oder JSP):
-----------------------------------------

<html>
....

<form name="..." action="..." method="...">
    ...
    <input type="button" onClick="form_submit(this.form.name)"/>
    <input type="submit" name="submit" value="submit"/>
</form>

<script type="text/javascript">
    function form_submit(formName) {
 document.forms[formName].submit();
    }
</script>

....
</html>
-----------------------------------------
Das Problem ist nun folgendes:
   Netscape 4.7 bringt mir den Fehler:
       JavaScript Error: document.forms[formName].submit is not a function
   InternetExplorer :
      Object does not support this property or method

Wenn ich den input-type "submit" weglasse, und nur den button mit der
js-Funktion nehme, funktionniert es.
Gibt es eine Möglichkeit, so dass ich in einem Formular beide Methoden
anwenden kann (über submit-Button, und über JavaScript-Funktion) ???

regards
   Andi

  1. Hallo,

    document.forms[formName].submit();

    in dieser schreibweise wird eine nummer erwartet
    bsp. die 0 für das erste form auf der seite, kein string...

    oder document.formname.submit();

    Odium

    1. Hallo,

      document.forms[formName].submit();

      in dieser schreibweise wird eine nummer erwartet
      bsp. die 0 für das erste form auf der seite, kein string...

      oder document.formname.submit();

      Odium

      Hy Odium,

      ich weiss, dass laut JavaScript eine Index-Nummer erwartet wird,
      aber es funktionniert auch mit dem Formnamen.
      Die direkte Schreibweise (document.formname.submit();) habe ich
      auch getestet, funktionniert auch, aber ich möchte es ja dynamisch
      haben.

      Mein Problem liegt aber nicht daran, sondern dass das ganze ohne
      zusätzlichen Submit-Button funktionniert, aber mit dem
      Submit-Button plötzlich nicht mehr.

      (also einfach aus dem Code den <input type="submit".../> rausnehmen,
      dann funktionniert es)

      Woran liegt das Problem

      Andi

      PS: danke trotzdem für die Antwort

      1. Hallo,

        funktioniert es auch in dieser merkwürdigen schreibweise im ns 4.7 (also ohne submit-button)?

        Odium

        1. Hallo,

          funktioniert es auch in dieser merkwürdigen schreibweise im ns 4.7 (also ohne submit-button)?

          Odium

          Hy,

          noch schnell zur genauen Erklärung, wie es funktionniert, und wie nicht:

          so geht's:
          ---------------------------------------------
          <form name="myForm" action="..." method="...">
              ...
              <input type="button" onClick="form_submit()"/>

          </form>

          <script type="text/javascript">
              function form_submit() {
           document.myForm.submit();
              }
          </script>
          ----------------------------------------------

          und so nicht:
          ---------------------------------------------
          <form name="myForm" action="..." method="...">
              ...
              <input type="button" onClick="form_submit()"/>
              <input type="submit" name="submit" value="submit"/>
          </form>

          <script type="text/javascript">
              function form_submit() {
           document.myForm.submit();
              }
          </script>
          ----------------------------------------------

          Das Problem häng also direkt mit dem Submit-Button
          zusammen...

        2. Hi,

          funktioniert es auch in dieser merkwürdigen schreibweise im ns 4.7 (also ohne submit-button)?

          Die Schreibweise ist nicht merkwürdig. formName ist ein Parameter der Funktion, kein String.

          Wenn darin der korrekte Name der Form als String drinsteht, ist das ok.
          Das Problem ist hier ein Namenskonflikt, s.o.

          Andreas

  2. Hi,

    <form name="..." action="..." method="...">
        ...
        <input type="button" onClick="form_submit(this.form.name)"/>
        <input type="submit" name="submit" value="submit"/>

    Nutze nie HTML-Elementnamen, HTML-Attributnamen oder Javascript-Funktionsnamen als Werte des name- oder id-Attributs.

    Das Problem ist nun folgendes:
       Netscape 4.7 bringt mir den Fehler:
           JavaScript Error: document.forms[formName].submit is not a function
       InternetExplorer :
          Object does not support this property or method

    Klar, document.forms[formname].submit ist der Button, den Du so sinnvoll benannt hast.

    Wenn ich den input-type "submit" weglasse, und nur den button mit der
    js-Funktion nehme, funktionniert es.

    Klar, dann ist der Namenskonflikt weg.

    Gibt es eine Möglichkeit, so dass ich in einem Formular beide Methoden
    anwenden kann (über submit-Button, und über JavaScript-Funktion) ???

    Ja, verwende sinnvolle Werte für das name-Attribut.

    Andreas

    1. Hallo Andreas,

      ich sehe jetzt das Problem das entsteht.
      Nur habe ich eine Struts-Appliakation, die mir in jeweils in der
      JSP-Seite den submit button automatisch generiert, und somit auch
      den name="submit" setzt.
      Aus folgendem Tag html:submit ergibt sich im source-code folgendes:
        <input type="submit" name="submit" value="...">

      Somit bin ich wieder beim Namenskonflikt.
      Gibt es eine weitere Möglichkeit, mittels javascript das Formular zu
      posten, ausser mit "document.forms[formname].submit()" ???

      Vielen Dank für die Hilfe, hat mir bereits sehr weitergeholfen.

      Andi

      Hi,

      <form name="..." action="..." method="...">
          ...
          <input type="button" onClick="form_submit(this.form.name)"/>
          <input type="submit" name="submit" value="submit"/>

      Nutze nie HTML-Elementnamen, HTML-Attributnamen oder Javascript-Funktionsnamen als Werte des name- oder id-Attributs.

      Das Problem ist nun folgendes:
         Netscape 4.7 bringt mir den Fehler:
             JavaScript Error: document.forms[formName].submit is not a function
         InternetExplorer :
            Object does not support this property or method

      Klar, document.forms[formname].submit ist der Button, den Du so sinnvoll benannt hast.

      Wenn ich den input-type "submit" weglasse, und nur den button mit der
      js-Funktion nehme, funktionniert es.

      Klar, dann ist der Namenskonflikt weg.

      Gibt es eine Möglichkeit, so dass ich in einem Formular beide Methoden
      anwenden kann (über submit-Button, und über JavaScript-Funktion) ???

      Ja, verwende sinnvolle Werte für das name-Attribut.

      Andreas