AlGallaf
AlGallaf

Reputation: 635

Add jQuery Validation Rule to a Radio Button Group

I'm using jQuery Validation Plugin and I want to be able to dynamically add and remove validation from 3 radio button groups.

I am able to dynamically add and remove validation from text field input using the sample code below:

<script type="text/javascript">
    $(document).ready(function(){   

        //Add Requird Validation
        $("#inputTextField").rules("add", "required");

        //Remove Required Validation
        $("#inputTextField").rules("remove", "required");

    });
</script>

Is it possible to do the same with radio buttons?

Upvotes: 5

Views: 16693

Answers (2)

politus
politus

Reputation: 6086

You may consider using the the required method with a dependency expression. This is where you specify the required rule like

rules: {
    details: {
      required: "#other:checked"
    }
}

this can be useful sometimes in that you don't have to add or remove rules to achieve a conditional validation on your elements. Try an example on jsfiddle

Upvotes: 0

Sparky
Sparky

Reputation: 98738

The code as you've posted it will work fine. However, rules('add') must come after .validate() and each input must contain a name attribute even if you're not targeting by name.

HTML:

<form id="myform">  
     <input type="text" name="field" id="inputTextField" /> <br/> 
</form> 

jQuery:

$(document).ready(function() {

    $('#myform').validate({
        // other options & rules
    });

    // must come afer validate()
    $("#inputTextField").rules("add", {
        required: true
    });

});

Demo: http://jsfiddle.net/fnKWD/

Is it possible to do the same with radio buttons?

Of course, just target them by name or by any other valid jQuery selector.

$('input[name="myname"]')

HTML:

<input type="radio" name="myname" value="0" />
<input type="radio" name="myname" value="2" />
<input type="radio" name="myname" value="5" />

Demo: http://jsfiddle.net/LkJZw/

Upvotes: 3

Related Questions