Friedhelm: Seite mit mehreren Formularen

Ich habe eine Web-Seite mit mehreren Formularen.

<form name=formular1>
...
</form>

<form name=formular2>
...
</form>

...
<select name="slide" onChange="change(formular1);">
...
<select name="slide" onChange="change(formular2);">
...

In einem Javascript.js möchte ich auf die einzelnen Formulare, die als Parameter übergeben wurden zugreifen.

Z.B.
function change(form_var) {
  current = document.forms["form_var"].slide.selectedIndex;
  current = document.forms["form_var"].slide.length-1;
}

Ich bekomme immer eine Fehlermeldung, dass das Object nicht definiert oder gleich Null ist.

Habt Ihr eine Lösung?

Danke und Gruß
Friedhelm

  1. Hallo,

    function change(form_var) {
      current = document.forms["form_var"].slide.selectedIndex;
      current = document.forms["form_var"].slide.length-1;
    }

    ^^^^^^^^^^^^

    form_var ist hier nicht der Name des Formulares, sondern eine Variable, die diesen Namn enthält. Deshalb mußt Du die Anführungszeichen entfernen.

    <select name="slide" onChange="change(formular1);">
    ...
    <select name="slide" onChange="change(formular2);">

    ^^^^^^^^^
    Hier muß es statt dessen change('formular1') bzw. change('formular2') heissen, da Du keine Variablen, sondern einen String übergibst.

    Gruß Markus

  2. Huhu Friedhelm

    current = document.forms["form_var"].slide.length-1;

    nimm "form_var" mit ohne "s

    Viele Grüße

    lulu

  3. Hallo Friedhelm,

    <form name=formular1>

    Besser:
    <form name="formular1">

    <select name="slide" onChange="change(formular1);">

    Hier die Zeichenkette uebergeben, also mit Anf.-zeichen:
    <select name="slide" onChange="change('formular1');">
    oder
    <select name="slide" onChange="change("formular1");">

    current = document.forms["form_var"]...;

    Hier ist form_var bereits eine Zeichenkette, also:
    current = document.forms[form_var]...;

    Ich bekomme immer eine Fehlermeldung, dass das Object nicht definiert oder gleich Null ist.

    Es wird ja auch das Formular mit dem Namen "form_var" gesucht ...

    MfG, Thomas

    1. Thomas,

      habe ich so gemacht wie Du beschrieben hast. Und es funktioniert!

      Danke und Gruß
      Friedhelm

      Hallo Friedhelm,

      <form name=formular1>

      Besser:
      <form name="formular1">

      <select name="slide" onChange="change(formular1);">

      Hier die Zeichenkette uebergeben, also mit Anf.-zeichen:
      <select name="slide" onChange="change('formular1');">
      oder
      <select name="slide" onChange="change("formular1");">

      current = document.forms["form_var"]...;

      Hier ist form_var bereits eine Zeichenkette, also:
      current = document.forms[form_var]...;

      Ich bekomme immer eine Fehlermeldung, dass das Object nicht definiert oder gleich Null ist.

      Es wird ja auch das Formular mit dem Namen "form_var" gesucht ...

      MfG, Thomas

  4. Moin.

    Ich habe eine Web-Seite mit mehreren Formularen.

    <form name=formular1>
    ...
    </form>

    <form name=formular2>
    ...
    </form>

    <form>

    ...
    <select name="slide" onChange="change(formular1);">
    ...
    <select name="slide" onChange="change(formular2);">
    ...

    </form>

    Habt Ihr eine Lösung?

    Formularelemente müssen Bestandteil eines Formulars sein, also müssen deine select-Felder ebenfalls in ein (meinetwegen auch namenloses) Formular gehüllt sein, wobei zu beachten ist, daß Formulare keine Formulare enthalten dürfen.

    Abgesehen davon scheint mir dein Javascript etwas konfus. Du rufst onChange eine Funktion eines Select-Feldes auf, welches sich außerhalb der infragekommenden Formulare befinden, beziehst dich innerhalb der Funktion aber auf das Select-Feld mit dem Namen "slide". Entweder ist in den beiden Formularen noch ein Select-Feld gleichen Namens drin, oder du hast ein logisches Problem - dann solltest du nochmal genauer überlegen und darlegen, was du eigentlich genau willst.

    - Sven Rautenberg