bunwich
bunwich

Reputation: 434

How do you create rules for jquery form validate plugin with names that are arrays?

Does anyone know how to create the rules for the jquery form validate plugin when you have a name attribute that is an array?

eg.

<form id="myForm">
<input type="checkbox" name="data[]" id="firstId" value="1" />One <br />
<input type="checkbox" name="data[]" id="secondId" value="2" />One <br />

<script type="text/javascript">
    $('#myform').validate({
        rules: {
            data: {
                required: true, minlength: 1
            }
        }
    });
</script>

Problem is that the 'data' syntax is incorrect. Using data[] or data\[\] is also invalid. I've only gotten it to work with

$('#firstId').rules('add', { required: true, minlength: 1});

Anyone have a suggestion?

Upvotes: 6

Views: 5939

Answers (2)

PetersenDidIt
PetersenDidIt

Reputation: 25620

You need to wrap the name of the input (in this case data[]) in quotes

$('#myform').validate({
  rules : {
    'data[]': { required: true, minlength: 1 }
  }
});

see the documentation here for Field with complex names (Brackets Dots): http://docs.jquery.com/Plugins/Validation/Reference#Fields_with_complex_names_.28brackets.2C_dots.29

Upvotes: 12

SolutionYogi
SolutionYogi

Reputation: 32243

Have you tried:

$('#myform').validate({
  rules : {
    'data[]': { required: true, minlength: 1 
    }
  }
}
);

I don't know if it will work, give it a shot.

Upvotes: 1

Related Questions