Jacky See schrieb:
Hi,

Some question on the config of validation plugins.
Suppose there are #fromDate and #toDate fields (using ui.datepicker).
I have added these custom rules
[...]

It will output two messages of 'Please input correct date range'.
How can I make it only ouput single one?
I've implemented a solution, please give the latest revision a try: http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js

You need to specify which elements to group using the new groups-option.

A usage example (actually a test, will later add it to docs) is here: http://dev.jquery.com/view/trunk/plugins/validate/test/messages.js

The interesting parts:

<form id="dateRangeForm">
        <input id="fromDate" name="fromDate" class="requiredDateRange" />
        <input id="toDate" name="toDate" class="requiredDateRange" />
        <span class="errorContainer"></span>
</form>

$.validator.addClassRules({
        requiredDateRange: {required:true, date:true, dateRange:true}
});
$.validator.addMethod("dateRange", function() {
        return new Date($("#fromDate").val()) < new Date($("#toDate").val());
}, "Please specify a correct date range.");
$("#dateRangeForm").validate({
        groups: {
                dateRange: "fromDate toDate"
        },
        errorPlacement: function(error) {
                form.find(".errorContainer").append(error);
        }
});

You'll most likely have to skip or modify the errorPlacement option, but the rest should work fine.

Your feedback on it is very welcome.

Jörn

Reply via email to