DatePicker JQuery проверки и формат - PullRequest
0 голосов
/ 17 мая 2011

Я использую следующее для выбора даты в Jquery для форматирования отображения даты в формате дд / мм / гг, а также хочу, чтобы пользователь не выбирал будущую дату. В одно время работает только одна вещь.

<script type="text/javascript" language ="javascript" >
            $(function () {
                var date = new Date();
                var currentDate = date.getDate();
                var currentMonth = date.getMonth();
                var currentYear = date.getFullYear();
               $(".datepicker").datepicker({ dateFormat: 'dd/mm/yy' });
                $(".datepicker").datepicker({ maxDate: new Date(currentYear, currentMonth, currentDate) });

            });
</script>

Как сделать так, чтобы даты форматировались и отключали будущие даты для одновременной работы. Мне не хватает ни единого бита, я не знаю, как объединить эти две проверки или требования.

Любые ответы, пожалуйста?

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 мая 2011

У меня было похожее требование к моему коду с датой проката.Вот как я это сделал:

$('#hireDate').datepicker({
    dateFormat: 'dd/mm/yy',
    maxDate: new Date(currentYear, currentMonth, currentDay)
});
0 голосов
/ 23 сентября 2014

Пользователь по-прежнему может вводить будущую дату вручную и ласкать вокруг вашего выбора даты. У нас была эта проблема в производственной системе.

Если вы хотите дополнительно проверить дату с помощью плагина проверки, попробуйте следующее:

/**
 * Requires Datepicker and Validator
 *
 * Params: 
 * 0...dateformat. see datepicker
 * 1...date. Value "0" is "today"
 * 2...(optional). date to display. will be automatically filled if 0 and 1 are set.
 * usage:
 * myfield: { maxDate: ['m/d/yy', 0] }
 */
jQuery.validator.addMethod("maxDate", 
    function(value, element, params) {
        if (!params[0])
            throw 'params missing dateFormat';
        if (typeof(params[1]) == 'undefined' )
            throw 'params missing maxDate';

        var dateFormat = params[0];
        var maxDate = params[1];
        if (maxDate == 0) {
            maxDate = new Date();
            maxDate.setHours(0); // make it 00:00:0
            maxDate.setMinutes(0);
            maxDate.setSeconds(0);
            maxDate.setMilliseconds(0);
        }
        if (typeof(params[2]) == 'undefined' )
            params[2] = $.datepicker.formatDate(dateFormat, maxDate);

        try {
            var valueAsDate = $.datepicker.parseDate( dateFormat, value )
            return (valueAsDate < maxDate);
        } catch (x) {
            return false;
        }

    },'Must be greater than {2}.');


$("#myform").validate({
    rules: {
        datepicker : { 
            maxDate ['m/d/yy', 0]
        }
    }
});

HTML:

<input name="datepicker" class="datepicker" type="text"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...