Datepicker не работает при загрузке с контроллера - PullRequest
0 голосов
/ 24 января 2019

Я хотел бы спросить, почему мой указатель даты перестает работать в моем модале после загрузки модели из контроллера.

Контроллер:

public ActionResult LoadUserDetails(int userId){
   return PartialView("_EditUserDetailsModal", model);
}

Вид:

$("#EditUserModalContent").html(response);

Datepicker:

// Settings for DataPicker
var currentYear = (new Date).getFullYear();
var maxDate = new Date();
maxDate.setFullYear(currentYear - 18);

$(".datepicker").datepicker({
     dateFormat: 'mm/dd/yy',
     changeMonth: true,
     changeYear: true,
     yearRange: '-100:-18',
     maxDate: maxDate,
     minDate: new Date((currentYear - 100), 12, 1)
});

Модель:

[Display(Name = "User_DateOfBirth", ResourceType =typeof(Resources.Translation))]
[DataType(DataType.DateTime, ErrorMessageResourceType =typeof(Resources.Translation), ErrorMessageResourceName ="Global_ErrorMessageValidDate")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")] 
public DateTime? DateOfBirth { get; set; }

Отлично работает, когда я не загружаю данные с контроллера (когда игнорирую строку с:

$("#EditUserModalContent").html(response))

Пожалуйста, как мне это исправить?

1 Ответ

0 голосов
/ 24 января 2019

Является ли указатель даты модальным?Если это так, $("#EditUserModalContent").html(response); удалил исходный указатель даты.DatePicker должен быть инициализирован снова, потому что код javascript, который уже был запущен, был только для .datepicker, который был на странице во время вызова.

$.ajax({ 
    url: '',
    ....
    success: function(response) {
        // response removes the initial datepicker
        $("#EditUserModalContent").html(response);
        // initialize the new datepicker input from the server
        var currentYear = (new Date).getFullYear();
        var maxDate = new Date();
        maxDate.setFullYear(currentYear - 18);
        $(".datepicker").datepicker({
            dateFormat: 'mm/dd/yy',
            changeMonth: true,
            changeYear: true,
            yearRange: '-100:-18',
            maxDate: maxDate,
            minDate: new Date((currentYear - 100), 12, 1)
        });
    }
})

Редактировать: добавлено в код для инициализации средства выбора даты после ответа ajax

...