ASP.NET MVC: jQuery UI DatePicker Устанавливает minDate и maxDate из модели на загруженной странице AJAX - PullRequest
0 голосов
/ 11 октября 2011

У меня появляется диалоговое окно, и его содержимое загружается с помощью функции загрузки jQuery.На этой странице, загруженной ajax, есть средство выбора даты jQuery UI, а в модели, которую я передаю представлению, у меня есть свойства MinDate и MaxDate, которые используются для установки минимальных и максимальных дат средства выбора даты.На странице без AJAX я обычно делаю что-то вроде этого:

<script type="text/javascript">
$(function () {
     var model = @(Model.ToJson());

        $('.date').datepicker('option', 'minDate', new Date(parseInt(model.MinDate.substr(6))));
        $('.date').datepicker('option', 'maxDate', new Date(parseInt(model.MaxDate.substr(6))));

});
</script>

Проблема в том, что если я включаю любой javascript в представление, которое загружается из функции загрузки jQuery, оно удаляется и не выполняется,Поэтому, если я включил приведенный выше код, чтобы указать минимальную и максимальную даты для средства выбора даты в диалоговой форме, не работает.

Как указать минимальные и максимальные даты для средства выбора даты в jQuery UI, где средство выбора датызагружается через ajax, а минимальная и максимальная даты поступают из модели?

Ответы [ 2 ]

3 голосов
/ 11 октября 2011

Вы можете сериализовать эти два свойства модели как атрибуты data- * HTML5 где-нибудь в DOM. Например, как часть самого средства выбора даты, было бы здорово:

<input type="text" class="date" name="myDate" data-min="@Model.MinDate" data-max="@Model.MaxDate" />

и затем определите некоторые функции:

function initPicker() {
    $('.date').each(function() {
        $(this).datepicker('option', 'minDate', $(this).data('min'))
               .datepicker('option', 'maxDate', $(this).data('max'));
    });
}

и затем вызовите эту функцию в вашем DOM ready:

$(initPicker);

, а также в ваших обратных вызовах AJAX для их повторного присоединения.

1 голос
/ 22 июня 2014
var minshowdate = new Date(@(DateTime.Now.Date.Year), 
                           @(DateTime.Now.Date.Month), 
                           @(DateTime.Now.Date.Day));
$('#ShowDate').datepicker({ minDate : minshowdate });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...