radio value auslesen???


  • pHaRyNx
  • 1872 Aufrufe 5 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • radio value auslesen???

    hallo!
    ich habe ein script, dass aus formularen bestimmte werte auslesen soll, u.a. aus einem radio "menü". das geht aber nicht mit "variable=document.formular.radio1.value" -> natürlich mit entsprechenden variablen!
    wie ist es möglich den wert trotzdem auszulesen?????
  • try this:

    HTML-Quellcode

    1. <HTML>
    2. <HEAD>
    3. <title>radio test</title>
    4. <script type="text/JavaScript">
    5. function getValue(fieldname) {
    6. var i = 0;
    7. var retVar = '';
    8. for (i = 0; i < document.radioform.elements[fieldname].length; i++) {
    9. if (document.radioform.elements[fieldname][i].checked == true) {
    10. retVar = document.radioform.elements[fieldname][i].value;
    11. } // END if
    12. } // END for
    13. alert('Value is ' + retVar);
    14. return retVar;
    15. } // END getValue()
    16. </script>
    17. </HEAD>
    18. <BODY>
    19. <form name="radioform" action="" enctype="multipart/form-data" method="post">
    20. <input type="radio" name="radiobtn" value="radio01"> radio 01
    21. <input type="radio" name="radiobtn" value="radio02"> radio 02
    22. <input type="radio" name="radiobtn" value="radio03"> radio 03
    23. <input type="button" name="submit" value="getValue" onClick="getValue('radiobtn')">
    24. </form>
    25. </BODY>
    26. </HTML>
    Alles anzeigen


    mit der funktion kannst du natuerlich mehrere radio-gruppen-werte herausfinden! einfach als parameter den radio-gruppen-namen uebergeben! z.b.: getValue('radio-gruppen-name')

    ceeyaa.MeX
  • Also erst mal n1 und big thx an den pRo! Den sourcecode habe ich gesucht und er klappt auch.
    Trotzdem habe ich noch ein paar Fragen, die mir helfen, den Sachverhalt logisch zu verstehen:

    -wozu "fieldname"??? da mich dieser teil verwirrte, hab ich ihn im gesamten code einfach weggelassen und es klappt trotzdem!
    -dazu folgener abschnitt aus dem code, der mich völlig überforderte:
    var i = 0;
    var retVar = '';
    for (i = 0; i < document.radioform.elements.length; i++) {
    if (document.radioform.elements.checked == true) {
    retVar = document.radioform.elements[i].value;
    } // END if
    } // END for
    alert('Value is ' + retVar);
    -->ok, das Funktionsprinzip der for-Schleife konnte ich nachlesen: eine variable (i) wird auf einen Anfangswert (0) gesetzt, der mit jedem Durchlauf erhöht wird.
    aber bei "document.radioform.elements.length" weiss ich nicht mehr, was da am Start ist.
    die der if-abfrage ab"...elements[i].checked==true" ist mir auch völlig schleierhaft.

    wäre dankbar für eine detaillierte funktionsbeschreibung ab der for-schleife und erläuterung zu meinen Fragen.
    mfg pHaRyNx
  • bin noch @work! heute abend bekommst du einen voll ausdokumentierten code!
    musste warten! aber ... vorfreude ist doch die schoenste freude, ned wahr!? ^^

    <EDIT>

    sooooooo ... here we go!
    jetzt sollte alles klar sein! ^^

    ONLINE DEMO: h**p://homepages.at/elscorpio/FSB/formRadioVal.html

    HTML-Quellcode

    1. <HTML>
    2. <HEAD>
    3. <title>radio test</title>
    4. <script type="text/JavaScript">
    5. /* hauptfunktion: zum auswerten mehrerer form-elemente (text, radio, ...) */
    6. function getVal() {
    7. // name bekommt den inhalt des textfeldes
    8. var name = document.testform.firstname.value;
    9. // musik bekommt den wert des angeklickten musik-radio-buttons
    10. var musik = getValRB('musik');
    11. // saufen bekommt den wert des angeklickten saufen-radio-buttons
    12. var saufen = getValRB('saufen');
    13. // ausgabe mittels alert
    14. alert(name + ' hoert gerne ' + musik + ' und sauft dabei ' + saufen + '! ,-)');
    15. } // END function getVal()
    16. /* funktion um werte von radio-elementen zu bekommen */
    17. /* fieldname: name der radio-elementgruppe */
    18. function getValRB(fieldname) {
    19. // definition der benoetigten vars
    20. var i = 0;
    21. var retVar = '';
    22. var fktStr = '';
    23. // radio-elemente sind 'arrays', d.h.
    24. // document.testform.elements['musik'].length = 3 stellen
    25. // document.testform.elements['saufen'].length = 4 stellen
    26. for (i = 0; i < document.testform.elements[fieldname].length; i++) {
    27. // document.testform.elements['musik'][an_der_i_ten_stelle].checked
    28. // nur dann ins IF, wenn wir die stelle des arrays
    29. //gefunden haben, die angeklickt wurde
    30. if (document.testform.elements[fieldname][i].checked == true) {
    31. retVar = document.testform.elements[fieldname][i].value;
    32. // schleife verlassen, wenn angeklickte stelle gefunden
    33. break;
    34. } // END if
    35. } // END for
    36. // abfragen ob fkt ueber die hauptfunktion aufgerufen wurde
    37. // wenn nicht, dann per alert den wert ausgeben
    38. fktStr = String(getValRB.caller);
    39. if (fktStr.indexOf("getVal()") == -1) {
    40. alert('Wert ist: ' + retVar);
    41. } // END if
    42. // rueckgabe des angeklickten wertes
    43. // das ist immer gut, vorallem weil wir ja diese fkt auch in unserer
    44. // hauptfunktion verwenden wollen und dort einen rueckgabewert erwarten
    45. return retVar;
    46. } // END function getValRB(fieldname)
    47. </script>
    48. </HEAD>
    49. <BODY>
    50. <form name="testform" action="" enctype="multipart/form-data" method="post">
    51. name: <input type="text" name="firstname" value="MeX"><br /><hr />
    52. musik:
    53. <input type="radio" name="musik" value="pop" checked> pop
    54. <input type="radio" name="musik" value="punk"> punk
    55. <input type="radio" name="musik" value="RnB"> RnB<br /><hr />
    56. saufen:
    57. <input type="radio" name="saufen" value="bier" checked> bier
    58. <input type="radio" name="saufen" value="wein"> wein
    59. <input type="radio" name="saufen" value="spirituosen"> spirituosen
    60. <input type="radio" name="saufen" value="fusel"> fusel<br /><hr/>
    61. auswertung:
    62. <input type="button" name="button" value="musik" onClick="getValRB('musik')">
    63. <input type="button" name="button" value="saufen" onClick="getValRB('saufen')">
    64. <input type="button" name="button" value="ALLES" onClick="getVal()">
    65. </form>
    66. </BODY>
    67. </HTML>
    Alles anzeigen




    </EDIT>


    ceeyaa.MeX
  • danke! hast dir echt mühe gegeben! wenn ichs immer noch nicht checken sollte, poste ich noch mal (unwarscheinlich!).....
    kriegst auf jeden Fall nen Eintrag in meinem Script(source)code.!
    mfg
    pHaRyNx

    ...war mir doch zu verwirrend, habs nicht ganz kapiert und hab dasselbe mit php ghemacht (wesentlich einfacher!)