HTML-Radio-Buttons: Wert ermitteln

  • Ich hoffe, daß der Titel deutlich ausgedrückt. Was besseres ist mir nicht eingefallen.


    Nun zu mein Problem. Ich habe eine HTML-Seite (genauer gesagt ein WSH-Skript) erstellt. Diese dient für die Umfrage. Es kommen zigmal die Radiobutton vor (d.h. Knöpchen, wo man eins von denen auswählen kann). Wie kann ich den Wert (Value) ermitteln, welche ich angeklickt habe.
    Ich realisiere das mit VBScript.


    Es sieht so aus:


    <input type="radio" name="Desktop_WSA_Performance" id="o1" value="1">
    <input type="radio" name="Desktop_WSA_Performance" id="o2" value="2">
    <input type="radio" name="Desktop_WSA_Performance" id="o3" value="3">
    <input type="radio" name="Desktop_WSA_Performance" id="o4" value="4">
    <input type="radio" name="Desktop_WSA_Performance" id="o5" value="5">
    <input type="radio" name="Desktop_WSA_Performance" id="o6" value="6">



    Ich kann zwar ermitteln, ob das Knöpfchen angeklickt ist:


    MsgBox Umfrage.o1.checked


    Aber das ist viel zu viel, wenn ich jede einzelne Knöpfchen überprüfe, ob es geklickt ist. Wenn ja, dann ist diese Wert zu auslesen.


    So in etwa:


    if Umfrage.o1.checked = true then
    Msgbox 1
    elseif Umfrage.o2.checked = true then
    Msgbox 2
    elseif .......


    Kann ich nicht mit ein einzige Zeile den Wert ermitteln? So etwa:


    Msgbox Umfrage.Desktop_WSA_Performance.Value 'Diese Zeile ist fehlerhaft


    cu Floh;)

  • Ich habe eine Lösung gefunden. Es gefällt mir zwar nicht so gut, aber immerhin besser als die ElseIf-Variante.
    Ich deklariere zuerst die Variablen und weise den Standardwerte zu.


    Und diese Variable wird automatisch geändert, sobald man auf dem Option klickt.


    <input type="radio" name="Desktop_WSA_Performance" onclick=iDesktop_WSA_Performance=1>
    <input type="radio" name="Desktop_WSA_Performance" onclick=iDesktop_WSA_Performance=2>
    <input type="radio" name="Desktop_WSA_Performance" onclick=iDesktop_WSA_Performance=3>
    ...


    Wie gesagt, nicht besonders elegant, aber immerhin.


    cu Floh;)

  • Das Prinzip hast du ja schon verstanden oder?


    Gib dem Radio-button den selben namen und frage dann den Wert von Desktop_WSA_Performance ab (müsste dann Desktop_WSA_Performance.value sein wenn ich mich nicht irre). Die "value"-Werte müssen bei jedem Radiobutton anders sein - klar...


    Und wo ist das Problem? Dadurch das alle Radiobutton den gleichen Namen tragen gehören sie automatisch zu einer Radiobuttongruppe, wenn du also dann den Wert von "name_von_radiobutton" abfragst bekommst du immer den aktuell ausgewählten Wert - wenn du keinen ausgewählt hast bekommst du eben nichts zurück (= ""). Evtl. funktioniert das alles auch nur nach einem Formular-POST aber es müsste auch über Javascript oder VBScript funktionieren...

    -> Tristan @ Work <-
    --

  • Nein ... mit Radiobutton meinen wir solche Dinge wie:


    * blabla
    * blablub


    wobei die * kleine kringelchen sind die man anwählen kann ... bei einer radio-group kann man nur entweder/oder anwählen ... hoffe du verstehst was ich meine...

    -> Tristan @ Work <-
    --

  • Anja Terchova: Radiobuttons sind sowas. Erklärt sind sie hier.


    McTristan: Das hat er offenbar schon probiert (siehe seine letzte Zeile). Funktioniert aber nicht (JavaScript meldet ebenfalls "undefined").


    EyesKiller:

    Code
    <form name="testformular">
    <input type="radio" name="gruppe" value="1">
    <input type="radio" name="gruppe" value="2">
    <input type="radio" name="gruppe" value="3">
    </form>
    Code
    For i = 0 to Document.testformular.Elements.Count - 1
    If Document.testformular.Elements(i).Name = "gruppe" Then
    If Document.testformular.Elements(i).Checked Then
    deinWert = Document.testformular.Elements(i).Value
    Exit For
    End if
    End if
    Next i

    sollte es tun.


    Gruß,


    Henning.

    ________________________

  • Anja:
    Genau das ist der Problem, die ich nicht möchte. Eben habe ich nachgezählt, der Formular hat 77 * 6 Radio-Buttons! Da kannst Du Dir vorstellen, wie lang der Code wird. So wie ich jetzt mache, brauche ich nur eine Zeile pro Frage zu schreiben (also "nur" 77 Zeilen).


    cu Floh;)

  • hmm ... du setzt also eine Variable wenn der entsprechende Radio-button angewählt ist, frage mich nur, warum du das nicht nach dem Post auswertest?! Irgendwann wirst du doch sicher zum nächsten Fragebogen gehen oder? Dieser mußt doch geladen werden, wenn du vorher einen POST machst kannst du dir diesen ganzen Quatsch sparen ... just my 0.02€ ... ich mach das in PHP jedenfalls immer so - ist natürlich ein Unterschied zum WSH aber ich bräuchte für deine Aufgabe nur ein paar Zeilen Code und würde die Fragen etc. komplett in die DB oder eine extra Datei packen - da kann man sie auch leichter verändern, mehrere Sprachen benutzen etc. aber für deine Idee ist das vielleicht etwas overkill :)


    [Edit] ... stelle gerade fest, daß das mit dem POST natürlich nur bei einem Webserver funktioniert - sorry - bin schon ver"webt" ...

    -> Tristan @ Work <-
    --

  • Hallo,


    falls Du wirklich bereits per JavaScript im Browser den angewählten Radiobutton identifizieren möchtest, wirst Du um eine der beiden bereits erwähnten Methoden -- Setzen einer "Merkvariable" beim Klick auf die (bzw. Veränderung des Zustandes der) Buttons oder alternativ Suche nach dem gewählten Button in einer Schleife -- nicht umhin kommen.


    Die Schleifensuche liesse sich höchstens noch abkürzen, indem nur die Radiobuttons der zu betrachtenden Gruppe durchsucht werden (mit IE 5+ bzw Netscape 6+ / Mozilla), Beispiel:


    Warum möchtest Du bereits im Browser das angewählte Element identifizieren? Ist das Formular interaktiv, und verändert sich bei Anwahl der Radiobuttons?


    Gruß
    Michael

    History: Motorola e930, t720, RAZR V3, MOTORAZR maxx V6, MOTOROKR Z6, MOTOROKR E8, MOTOZINE ZN5, Samsung S8000 Jet

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!