BiDi: Radiobuttons oder Checkboxen per Javascript 'vergewaltigen' ???

Hi zusammen!

Folgendes Problem:
Ich habe eine dynamisch generierte Liste mit Eigenschaften. Jeder dieser Eigenschaften soll der User einen oder keinen Wert zuordnen.
Mache ich diese Zuordnung über Radiobuttons ist zwar die Bedingung 'nur ein Wert' erfüllt, hat der User aber erstmal einen Radiobutton der jeweiligen Gruppe markiert, kann er nicht mehr 'keinen' Wert zuordnen. Es sei denn, ich setze explizit einen zusätzlichen Radiobutton mit 'keinem' Wert. Will ich nicht (führt wieder zu stundenlangen Diskussionen mit dem Designer), sondern lieber eine Lösung, die beim nochmaligen Klicken auf einen gecheckten Radiobutton diesen 'unchecked' ohne ein Gruppenmitglied dafür zu 'checken'. Das kriege ich aber nicht gebacken, die blöden Dinger scheinen nicht auf Eventhandler zu reagieren...
Nächste Möglichkeit wären Checkboxen, dort kann ich ja 'keinen, einen oder mehrere' auswählen. Mehrere ist aber verboten, ich müsste also auch hier per Javascript eingreifen und habe dann das gleiche Problem wie mit den Radiobuttons...
Achja, das Ganze muss nur unter Win-IE 6 funktionieren (seeehr beschränktes Intranet)

Danke für alle Ideen und Hilfe!

Grüsse
BiDi

  1. Hello,

    Alternative:
    Nimm Select-Options mit einer Leeroption. Was sagt denn der Designer dazu? Man kann da viel eleganter den Text unterbringen.

    Und sonst hilft Dir vielleicht das weiter:

    ---------------------------------------------------------
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
         "http://www.w3.org/TR/html4/transitional.dtd">
    <html>
    <head>
    <title>Titel</title>
    <META NAME="Author" CONTENT="?">
    <META NAME="Keywords" CONTENT="?">
    <META NAME="Description" CONTENT="?">

    <script type="text/javascript">
    <!--
      function checkRadio(element)
      {
        //alert(element);
        if (element.checked)
        {
          alert("checked");
          element.checked = false;
        }
        else
        {
          alert("unchecked");
        }
      }

    //-->
    </script>

    </head>
    <body>

    <form action="#" method = "post">

    <input type="radio" name="gruppe[]" value="1" onClick="checkRadio(this)">1<br />
      <input type="radio" name="gruppe[]" value="2">2<br />
      <input type="radio" name="gruppe[]" value="3">3<br />
      <input type="radio" name="gruppe[]" value="4">4<br />

    </form>

    <!-- Inhalt der Datei -->
    </body>
    </html>
    --------------------------------------------------------------

    Musst Du selbst eben noch ein bisschen basteln.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Hello,

      das ganze nochmal. Nun funktioniert es. Mit einem Doppelclick auf eines der Elemente kann man die Auswahl wieder aufheben.

      ---------------------------------------------------------------
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/transitional.dtd">
      <html>
      <head>
      <title>Titel</title>
        <META NAME="Author" CONTENT="Thomas Schmieder, bitworks Braunschweig">
        <META NAME="Keywords" CONTENT="Radiobuttons, JavaScript, ausschalten, Input, HTML">
        <META NAME="Description" CONTENT="In Radiogroups kann man zwar eine Auswahl treffen, aber
      diese nicht wieder zurückziehen. Mit einem DoppelKlick auf eines der Elemente der
      Radiogroup ist das mit Hilde einer JavaScript-Funktion möglich.">

      <script type="text/javascript">
        <!--
          function checkRadio(element)
          {
            if (element.checked == true)
            {
        //      alert("checked");
              element.checked = false;
            }
            return element.checked;
          }

      //-->
        </script>

      </head>

      <body>

      <form action="#" method = "post">

      <input type="radio" name="gruppe[]" value="1" onDblClick="return checkRadio(this)">1<br />
        <input type="radio" name="gruppe[]" value="2" onDblClick="return checkRadio(this)">2<br />
        <input type="radio" name="gruppe[]" value="3" onDblClick="return checkRadio(this)">3<br />
        <input type="radio" name="gruppe[]" value="4" onDblClick="return checkRadio(this)">4<br />

      </form>

      </body>
      </html>
      ----------------------------------------------------------------

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      1. Hi,

        das ganze nochmal. Nun funktioniert es. Mit einem Doppelclick auf eines der Elemente kann man die Auswahl wieder aufheben.

        Das ganze mag so in einigen Browsern funktionieren.

        Aber:
        http://www.w3.org/TR/html401/interact/forms.html#radio
        sagt, daß immer ein Radio-Button eingeschaltet sein sollte.

        Wenn überhaupt sollte wie folgt vorgegangen werden:

        Es wird ein zusätzlicher Radiobutton "keine Auswahl" angelegt.
        Dieser wird (samt label) per Javascript unsichtbar gemacht (falls kein Javascript vorhanden ist, kann also trotzdem noch "keine Auswahl" gewählt werden). Achtung: nur visibility:hidden, nicht display:none verwenden - display:none führt u.U. dazu, daß der Radiobutton nicht mehr als zum Formular gehörend betrachtet wird.

        Und dann kann man beim Klicken auf den selektierten Radiobutton diesen "Keine Auswahl"-Radiobutton per Script selektieren.

        Vorteile dieses Vorgehens:
        funktioniert mit allen Browsern - es ist immer ein Radiobutton selektiert
        funktioniert auch ohne Javascript.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.mud-guard.de/
        1. Das ganze mag so in einigen Browsern funktionieren.

          Jaap, genauer gesagt funktioniert es nur im IE 6 für Windows.
          Aber wie ich schon schrieb: Seeeeehr beschränktes Intranet.
          Du hast natürlich recht: Wirklich konform ist das nicht, aber ich halte das in der speziellen Situation für vertretbar.

          Grüsse
          BiDi

          1. Hello,

            Das ganze mag so in einigen Browsern funktionieren.
            Jaap, genauer gesagt funktioniert es nur im IE 6 für Windows.

            Ich habe es eben mal mit Netscape 4.7 ausprobiert. Da klappt es auch. und mit meinem IE 5.5, den ich hier immer noch nutze, klappt das auch. Und ob bitte nochmal ein paar Andere so nett wären, ihre Browser mit JavaScript mit dem HTML-Script zu quälen?

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      2. Tausend Dank! Das funzt :).

        Grüsse
        BiDi

    2. hi,

      Alternative:
      Nimm Select-Options mit einer Leeroption. Was sagt denn der Designer dazu?

      so wenig, wie man die mit CSS formatieren kann, dürfte das den "designer" vermutlich zum weinen und/oder toben bringen.

      gruss,
      wahsaga