dk: selected

Guten Tag

ich hab folgendes Problem: ich brauche die Möglichkeit folgende Funktion auch für andere Formularelemente einzusetzen:
function test()
{
  if (document.konfigurator.Vertragslaufzeit.options[0].selected == true){alert(""); return false;}
  return true;
}
Und wenn das möglich ist wäre es noch am besten wenn ich das alles ohne über den Submit Button gehen zu müssen bewerkstelligen könnte.

Ihr würdet mich echt SUPER WEITER bringen. Es wäre super wenn jemand eine Lösung dafür weiß.
Danke für eure mühen schon mal im vorraus.
Dennis

  1. hi,

    ich brauche die Möglichkeit folgende Funktion auch für andere Formularelemente einzusetzen:
    function test()
    {
      if (document.konfigurator.Vertragslaufzeit.options[0].selected == true){alert(""); return false;}
      return true;
    }

    Also willst du deine Funktion mit Parametern aufrufen, und Schema 4 zum Zugriff auf Formularelemente nutzen.

    Und wenn das möglich ist wäre es noch am besten wenn ich das alles ohne über den Submit Button gehen zu müssen bewerkstelligen könnte.

    Javascript-Funktionen kannst du bspw. mittels onclick auf einem Element aufrufen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Mit OnClick hab ich die ganze Zeit gearbeitet. Es bringt mich aber nicht weiter, da ich nicht wissen will wann das Element makiert wird sondern ob es makiert ist oder nicht. Das Problem bei OnClick ist nämlich sonst das bei mehrfachen Klick auf ein und das selbe Element der Wert immer wieder ändert und das bringt mich nicht weiter.
      Ich hab ein Formular mit Radiobuttons und Checkboxen von denen ich VOR dem Submit wissen muss welche aktiviert sind und welche nicht damit ich anhand dessen eine Ausgabe habe bevor das Formular übersendet wird.

      MfG Dennis

      1. Moin

        Ich hab ein Formular mit Radiobuttons und Checkboxen von denen ich VOR dem Submit wissen muss welche aktiviert sind und welche nicht damit ich anhand dessen eine Ausgabe habe bevor das Formular übersendet wird.

        dafür gibt es explizit den event-Handler onsubmit:

        <form action="..." onsubmit="return test()">

        und in der Funktion test() prüfst du dann was auch immer du willst und gibst entsprechend return false oder true zurück. Bei false wird dann das Formular nicht übermittelt.

        Gruß
        rfb

        1. dafür gibt es explizit den event-Handler onsubmit:

          Den man auch noch schön erweitern kann

          <form action="..." onsubmit="return test()">

          <form action="..." onsubmit="return test(this)">

          So hat man in der funktion test() über den ersten Parameter Zugriff auf das Formular
          * Das spart Tipperei, da nicht mehr auf document.forms['nameDesFomrulars'] zugegriffen werden muss
          * Es spart den Namen des Formular
          * Und die Funktion kann auf jedes beliebige Formular angewandt werden.

          Struppi.

          --
          Javascript ist toll (Perl auch!)
      2. hi,

        Ich hab ein Formular mit Radiobuttons und Checkboxen von denen ich VOR dem Submit wissen muss welche aktiviert sind und welche nicht damit ich anhand dessen eine Ausgabe habe bevor das Formular übersendet wird.

        Warum dann die Forderung

        Und wenn das möglich ist wäre es noch am besten wenn ich das alles ohne über den Submit Button gehen zu müssen bewerkstelligen könnte.

        Wie willst du ein Formular mit Radio Buttons und Checkboxen denn sonst vernünftig abschicken lassen, wenn nicht mit einem Klick auf einen Button o.ä.?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hi,

    z.B. so:

    if(eval("document.konfigurator."+MeinElement"+".options[0].selected == true")) ...

    Jedenfalls mach ich das immer so.

    1. Hallo,

      if(eval("document.konfigurator."+MeinElement"+".options[0].selected == true")) ...

      auaaa!
      eval() is evil!

      Die eval-Granate ist doch hier gar nicht nötig. Kann man doch viel einfacher über die alternative Syntax beim Objektzugriff machen:

      if (document.konfigurator[MeinElement].options[0].selected) ...

      Und den expliziten Vergleich auf ==true kannst du bei der Gelegenheit auch beseitigen, das ist ein unnötiger Schritt, der nur die Übersicht erschwert. "Ist es wahr, dass ... selektiert ist?"
      Das if-Statement wertet den Ausdruck in der Klammer aus, und jeder Wert, der numerisch nicht Null ergibt oder undefiniert ist, ist automatisch true. Außerdem ist es ohne den expliziten Vergleich auch leichter lesbar.

      So long,
       Martin

      --
      You say, it cannot be love if it isn't for ever.
      But let me tell you: Sometimes, a single scene can be more to remember than the whole play.
    2. z.B. so:

      if(eval("document.konfigurator."+MeinElement"+".options[0].selected == true")) ...

      Jedenfalls mach ich das immer so.

      Mich würd ja wirklich mal interssieren woher dieser Quatsch kommt. Den sieht man so oft, wer hat das in die Welt gesetzt?

      Struppi.

      --
      Javascript ist toll (Perl auch!)