Удалить функцию Datepicker динамически
Я хочу удалить функцию datepicker в зависимости от выбранного значения выпадающего списка. Я пробую следующие коды, но он по-прежнему показывает календарь, когда я помещаю курсор в текстовое поле. Пожалуйста, дайте мне предложение.
$("#ddlSearchType").change(function () {
if ($(this).val() == "Required Date" || $(this).val() == "Submitted Date") {
$("#txtSearch").datepicker();
} else {
$("#txtSearch").datepicker("option", "disabled", true);
}
});
![enter image description here]()
Ответы
Ответ 1
Вы можете попробовать использовать методы enable/disable вместо использования метода опций:
$("#txtSearch").datepicker("enable");
$("#txtSearch").datepicker("disable");
Это отключает все текстовое поле. Возможно, вы можете использовать datepicker.destroy()
:
$(document).ready(function() {
$("#ddlSearchType").change(function() {
if ($(this).val() == "Required Date" || $(this).val() == "Submitted Date") {
$("#txtSearch").datepicker();
}
else {
$("#txtSearch").datepicker("destroy");
}
}).change();
});
Демо здесь.
Ответ 2
Уничтожьте экземпляр datepicker, когда вы его не хотите, и создайте новый экземпляр, когда это необходимо.
Я знаю, что это уродливо, но похоже, что это работает...
Проверьте это
$("#ddlSearchType").change(function () {
if ($(this).val() == "Required Date" || $(this).val() == "Submitted Date") {
$("#txtSearch").datepicker();
}
else {
$("#txtSearch").datepicker("destroy");
}
});
Ответ 3
Просто привяжите datepicker к классу, а не привяжите его к id. Удалите класс, если вы хотите отменить datepicker...
$("#ddlSearchType").change(function () {
if ($(this).val() == "Required Date" || $(this).val() == "Submitted Date") {
$("#txtSearch").addClass("mydate");
$(".mydate").datepicker()
} else {
$("#txtSearch").removeClass("mydate");
}
});
Ответ 4
Это решение, которое я использую. Он имеет больше строк, но он будет создавать только дату.
$('#txtSearch').datepicker({
constrainInput:false,
beforeShow: function(){
var t = $('#ddlSearchType').val();
if( ['Required Date', 'Submitted Date'].indexOf(t) ) {
$('#txtSearch').prop('readonly', false);
return false;
}
else $('#txtSearch').prop('readonly', true);
}
});
Датчик даты не будет отображаться, если значение ddlSearchType не является "Обязательной датой" или "Отправленной датой"
Ответ 5
Ну, у меня была такая же проблема и я попытался "уничтожить", но это не сработало для меня. Затем я нашел следующую работу
Мой HTML был:
<input placeholder="Select Date" id="MyControlId" class="form-control datepicker" type="text" />
JQuery Это работает для меня:
$('#MyControlId').data('datepicker').remove();