jQuery проверяет плагин с помощью пользовательских jQueryUI datePickers - PullRequest
0 голосов
/ 16 апреля 2010

У меня есть некоторые DatePickers
Я настроил их так, чтобы они отображали только месяц и год
Это код для их создания

jQuery("input[name*='fechauso']").each(function() {
    jQuery(this).datepicker({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'MM yy',
        constrainInput: true,
        showOn: 'button',
        buttonText: 'Seleccionar...',

        onClose: function(dateText, inst) { 
            var month = jQuery("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = jQuery("#ui-datepicker-div .ui-datepicker-year :selected").val();
            jQuery(this).datepicker('setDate', new Date(year, month, 1));
        }
    });
});

Теперь я добавил собственный метод валидатора (с помощью плагина), чтобы проверить это:

  • Если пользователь не выбрал дату с помощью кнопки, поле будет пустым, поэтому должен запускаться пользовательский метод проверки. Этого не происходит

Вот пользовательский метод проверки

jQuery.validator.addMethod("isEmpty", function(value, element) {
    return (value == '');
}, "Must select a date with the button besides control");

jQuery("#ct_2_fechauso").rules("add", { 
    required: "#campotilde_psico:checked", 
    isEmpty: true
});

Проблема в том, что даже если я выбираю дату, она всегда просит меня выбрать дату снова. Поля datePicker должны быть доступны только для чтения

1 Ответ

0 голосов
/ 09 ноября 2010

попробуйте использовать это

$.datepicker.setDefaults({
    closeOnSelect: true,
    onSelect: function () {
        if (typeof $(this).valid == 'function') {
            $(this).valid();
        }
    }
});
...