1

I have search lot of about this but haven't found any solution. I want to validate multiple array named file inputs and dropdowns in JQuery validate.

<td> <input type="text" class="times" name="times[]" /> </td>
</tr>
<tr>
<td> <input type="text" class="times" name="times[]" /> </td>
</tr>
<tr>
<td> <input type="text" class="times" name="times[]" /> </td>
</tr>

I have added JQuery Validate Code like this:

$("#formname").validate(
    {
    rules:{
        times:{required:true, digits:true}
    }}
    );

But its only validating first input and showing error message there only whether 2nd or 3rd input field entered or not.

I don't want to change this "times[]" name because functionality is depending on this. Only I want validation using JQuery validate.

Is there any trick available for this?

Any help would be appreciated.

Thanks

1 Answer 1

1

The plugin doesn't handle fields with the same name well. Here's how I solved it in my application.

I gave all the repetitive fields distinct names, and put the validation method names in the class.

<td> <input type="text" class="times required digits" name="times[0]" /> </td>
</tr>
<tr>
<td> <input type="text" class="times required digits" name="times[1]" /> </td>
</tr>
<tr>
<td> <input type="text" class="times required digits" name="times[2]" /> </td>
</tr>

You can remove the indexes before submitting with code like this:

$("#formname").validate({
    ...
    submitHandler: function(form) {
        $(form).find(":input[name*='[']").each(function() {
            this.name = this.name.replace(/\[\d+\]/, '[]');
        }
        form.submit();
    }
});
Sign up to request clarification or add additional context in comments.

6 Comments

Thanks but I want unique name for all my input fields. Actually the form is very huge and lots of inputs & dropdown names are like this so I can't change that name. Is it possible by passing some index to Jquery validate?
You can have your submit handler iterate through all the fields and remove the number from inside the brackets -- that's what I do.
The basic problem is that the plugin expects names to be unique. It uses the name as the key in an internal table. If there are duplicates, it will validate all of them, but put the error message next to the first one all the time.
Thanks. Can you please put some code so that I'll get some idea.
I have implemented this and its working fine..Thanks. Only one question is How can I change default label messages from submit handler?
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.