Search code examples
javascripthtmlfor-loopradio-button

How to get the selected radio button’s value?


I’m having some strange problem with my JS program. I had this working properly but for some reason it’s no longer working. I just want to find the value of the radio button (which one is selected) and return it to a variable. For some reason it keeps returning undefined.

Here is my code:

function findSelection(field) {
    var test = 'document.theForm.' + field;
    var sizes = test;

    alert(sizes);
        for (i=0; i < sizes.length; i++) {
            if (sizes[i].checked==true) {
            alert(sizes[i].value + ' you got a value');     
            return sizes[i].value;
        }
    }
}

submitForm:

function submitForm() {

    var genderS =  findSelection("genderS");
    alert(genderS);
}

HTML:

<form action="#n" name="theForm">

    <label for="gender">Gender: </label>
    <input type="radio" name="genderS" value="1" checked> Male
    <input type="radio" name="genderS" value="0" > Female<br><br>
    <a href="javascript: submitForm()">Search</A>
</form>

Solution

  • You can do something like this:

    var radios = document.getElementsByName('genderS');
    
    for (var i = 0, length = radios.length; i < length; i++) {
      if (radios[i].checked) {
        // do whatever you want with the checked radio
        alert(radios[i].value);
    
        // only one radio can be logically checked, don't check the rest
        break;
      }
    }
    <label for="gender">Gender: </label>
    <input type="radio" name="genderS" value="1" checked="checked">Male</input>
    <input type="radio" name="genderS" value="0">Female</input>

    jsfiddle

    Edit: Thanks HATCHA and jpsetung for your edit suggestions.