vfc: vor senden einen bestimmten radio button prüfen

Hallo Gemeinde,

vorweg: ich habe keine Ahnung von Java Script, deshalb poste ich mein Problem hier:

<form>
<input type="radio" name="loeschen" value="loeschen">Loeschen
<input type="radio" name="loeschen" value="aendern">Aendern
<input type="submit" value="Loeschen">
</form>

Da der submit-button "Loeschen" heißt, soll eine Warnung erscheinen, wenn nicht der radio-button "loeschen", sondern "aendern"  aktiviert ist.

Danke für Eure Hilfe

Gruß, vfc

  1. <form>
    <input type="radio" name="loeschen" value="loeschen">Loeschen
    <input type="radio" name="loeschen" value="aendern">Aendern

    Und welches ist der Default?

    <input type="submit" value="Loeschen">
    </form>

    Da der submit-button "Loeschen" heißt, soll eine Warnung erscheinen, wenn nicht der radio-button "loeschen", sondern "aendern"  aktiviert ist.

    Warum bietest du nicht zwei separate einfache Buttons an:
    Einen für Löschen und einen für Ändern
    <form ...>
       <input type="submit" name=delete value="Loeschen">
    </form>
    <form ...>
       <input type="submit" name=change value="Ändern">
    </form>

    mfg Beat

    1. default ist "aendern"

      <form...>
      <input type="radio" name="loeschen" value="loeschen">Loeschen
      <input type="radio" name="loeschen" value="aendern" checked>Aendern

      ...
      </form>

      dass ich bereits zwei submit-buttons habe, hatte ich vergessen zu schreiben, aber im Moment ist es halt so, dass der user auch "Löschen" senden kann, wenn "ändern" checked ist und das wollte ich verhindern.

      vfc

      <form>
      <input type="radio" name="loeschen" value="loeschen">Loeschen
      <input type="radio" name="loeschen" value="aendern">Aendern

      Und welches ist der Default?

      <input type="submit" value="Loeschen">
      </form>

      Da der submit-button "Loeschen" heißt, soll eine Warnung erscheinen, wenn nicht der radio-button "loeschen", sondern "aendern"  aktiviert ist.

      Warum bietest du nicht zwei separate einfache Buttons an:
      Einen für Löschen und einen für Ändern
      <form ...>
         <input type="submit" name=delete value="Loeschen">
      </form>
      <form ...>
         <input type="submit" name=change value="Ändern">
      </form>

      mfg Beat

      1. Mahlzeit,

        default ist "aendern"

        Du hast also zwei Radiobuttons mit dem Namen "loeschen", wovon der Default-Wert "aendern" ist (und nicht "loeschen") und einen Submit-Button, der zwar nicht "loeschen" heißt, aber als Wert "Loeschen" hat?

        dass ich bereits zwei submit-buttons habe, hatte ich vergessen zu schreiben,

        ... was natürlich nicht besonders schlau ist :-) ...

        aber im Moment ist es halt so, dass der user auch "Löschen" senden kann, wenn "ändern" checked ist und das wollte ich verhindern.

        Bitte?

        Vielleicht solltest Du

        a) mal genauer erklären, was das Formular überhaupt soll bzw. woraus es denn sonst noch so besteht oder

        b) alternativ Dein Konzept überdenken. Wenn der Code schon so verwirrend und anscheinend schwer erklärbar ist, ist vielleicht die Bedienung auch nicht unbedingt intuitiv ...

        Ansonsten würde ich Dir empfehlen, Dich mit http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onsubmit@title=onsubmit, http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=getElementById() bzw. http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_name@title=getElementsByName(), http://de.selfhtml.org/javascript/objekte/window.htm#alert@title=alert() und http://de.selfhtml.org/javascript/sprache/funktionen.htm#rueckgabewert@title=return zu beschäftigen.

        Achja: und verzichte bitte auf TOFU, das nervt. Danke. :-)

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Also, es geht um ein Wohnungs-Exposé, das vom Wohnungs-Anbieter entweder gelöscht (da z.B. vermietet) oder geändert (Miete runter etc.) werden kann.
          Das Formular wird nicht maschinell verarbeitet, sondern manuell ausgewertet.

          Der Anbieter (user) soll anhand der Radio-Buttons als erstes auswählen, ob er das Angebot löschen oder ändern will. Wenn er es löschen will, muss er von (default) Ändern auf Löschen klicken und kann dann, ohne die weiteren Felder durchzugehen das Formular absenden. Der "Ändern"-Button steht ganz unten auf der Seite. Man könnte das ganze auch in zwei Formularen realisieren, aber die Radio-Buttons sollen ja in einer Gruppe (nur einer anwählbar) sein.

          Deshalb soll, bei klick auf den Sende-Button "Löschen" eine Meldung erscheinen, wenn der radio-button "loeschen" nicht aktiviert (checked) ist.

          Gruß, vfc

          <form>
          <input type="radio" name="loeschen" value="loeschen">Loeschen
          <input type="radio" name="loeschen" value="aendern" checked>Aendern

          <input type="submit" value="Loeschen">

          <input.....>Aenderung 1
          <input.....>Aenderung 2
          <input.....>Aenderung 3
          <input.....>Aenderung 4
          <input.....>Aenderung 5

          ...

          <input type="submit" value="Aendern">
          </form>

          1. Ja meine Frage ist die:
            Warum machst du nicht zwei Formulare?
            Das erlaubt dir eine räumlich visuelle Trennung.
            Du kannst ja das Löschen Formular rot hinterlegen.
            Zwei so grundsätzlich verschiedene Dinge gehören nicht verschachtelt.

            Dein Formular ist zudem ein unvollständig Dummy.
            Da fehlt mindestens ein hidden Feld, das die Auftragsnummer hat

            mfg Beat

            1. Warum machst du nicht zwei Formulare?

              ...

              Zwei so grundsätzlich verschiedene Dinge gehören nicht verschachtelt.

              der user soll vor dem senden eine eindeutige Auswahl treffen: "Löschen" oder "Ändern" - diese eindeutige Auswahl will ich mit radio-buttons in einer Gruppe realisieren

              Du kannst ja das Löschen Formular rot hinterlegen.

              die Zeile mit dem radio-button "löschen" und dem Sende-button "Löschen" ist bereits rot hinterlegt.

              Dein Formular ist zudem ein unvollständig Dummy.
              Da fehlt mindestens ein hidden Feld, das die Auftragsnummer hat

              deshalb sind Punkte ... zwischen den tags

              Ich hatte ursprünglich nach einem Lösungsvorschlag mit Javascript gefragt, dazu hat sich leider noch niemend geäußert.

              Gruß, vfc

              1. Mahlzeit,

                Ich hatte ursprünglich nach einem Lösungsvorschlag mit Javascript gefragt, dazu hat sich leider noch niemend geäußert.

                Weil das leider nicht ganz trivial ist - jedenfalls kommt's mir so vor.

                Du könntest einerseits <http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onsubmit@title=beim Abschicken> des Formulars überprüfen, welcher Radiobuttons ausgewählt wurde - allerdings weißt Du da nicht ohne weiteres, auf welchen der Buttons der Anwender geklickt hat.

                Du könntest andererseits <http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick@title=beim Klicken> auf einen der Absendebuttons (dessen Namen bzw. Wert Du zu dem Zeitpunkt ja weißt) überprüfen, welcher der Radiobuttons ausgewählt wurde - allerdings wird währenddessen das Formular abgeschickt. Du müsstest das dann also unterbinden.

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
              2. der user soll vor dem senden eine eindeutige Auswahl treffen: "Löschen" oder "Ändern" - diese eindeutige Auswahl will ich mit radio-buttons in einer Gruppe realisieren

                Dann darfst du keinen Default Radio-Button angeben

                OK zu Java-Script

                Das Problem sind die Radio-Buttons (etwas schwieriger)
                Wenn du den Zustand 'checked' auslesen willst, muss du über die Radio-Buttons iterieren.
                Wenn das kein Problem für dich darstellt...
                Anderseits, etwas einfacher:
                Wenn du eine Checkbox verwenden würdest (checked = löschen), kannst du an den Zustand ganz einfach mit getElementById gelangen.

                Du kannst dann die Submit Buttons in Abhängigkeit des Attribut checked der Checkbos mit dem Attribut dissabled versehen, so dass entweder nur der Ändern, oder nur der Löschen Button aktiv sind.
                Gleichfalls kannst du auf der Basis des Zustands einen Hilfstext mit dem oder dem Text einblenden, indem du entweder CSS Eigenschaften direkt manipulierst (display) oder ein class Attribut setzt/entfernst, welches die Anzeige beeinflusst

                Wenn soweit verdaut, kann man hier weiter machen.

                mfg Beat