Radio button validation in javascript

user1359421 picture user1359421 · Apr 26, 2012 · Viewed 221.4k times · Source

Need to validate a radio button input, i.e. when submit button is pressed and no radio buttons have been selected, it alerts the user saying 'please select a check box', and if a radio button has been selected then simply submit the form, needs no alert.

Can only use HTML CSS and JavaScript for this, I know it's 1000 times easier in jquery but sadly I can't use that.

And I know my HTML isn't valid, but unless it directly affects my current problem then I'll handle it later.

<form name="form1" action="#" onsubmit="return validateForm()" method="post"> 

    First time visitor?:<br/>
            <label for="s1">Yes</label>
            <input type="radio" id="1" name="yesno" value="1"/>
            <br/>
            <label for="s2">No</label>
            <input type="radio" id="1" name="yesno" value="2"/>

            <br/>       

    <input type="submit" value="Submit"><br/>
    </form>

Any pointers are greatly appreciated, thanks.

Answer

MatuDuke picture MatuDuke · Apr 26, 2012

1st: If you know that your code isn't right, you should fix it before do anything!

You could do something like this:

function validateForm() {
    var radios = document.getElementsByName("yesno");
    var formValid = false;

    var i = 0;
    while (!formValid && i < radios.length) {
        if (radios[i].checked) formValid = true;
        i++;        
    }

    if (!formValid) alert("Must check some option!");
    return formValid;
}​

See it in action: http://jsfiddle.net/FhgQS/