jQuery DateInput уничтожить - PullRequest
       6

jQuery DateInput уничтожить

0 голосов
/ 10 августа 2011

С помощью инструментов jQuery API DateInput, найденного по адресу

http://flowplayer.org/tools/dateinput/

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

У меня нет проблем с использованием следующего для включения календаря dateinput:

$('#value').dateinput({selectors:true, max: endDay(new Date()), yearRange:[-10,5] });

Проблема, с которой я сталкиваюсь, заключается в том, когда мне нужно вернуть окно ввода в нормальное состояние, а неэто будет dateinput, я не могу.Например, я мог бы предположить, что был бы вызов API, такой как следующий:

$('#value').dateinput('destroy');

Кто-нибудь знает, что я могу из-за этого?

Ответы [ 2 ]

4 голосов
/ 10 августа 2011

Замените его новым входом через .replaceAll() или .replaceWith().

$("#value").replaceWith("<input>");
1 голос
/ 10 августа 2011

Источник здесь: https://github.com/jquerytools/jquerytools/blob/master/src/dateinput/dateinput.js

На первый взгляд, похоже, что метод уничтожения отсутствует, но вы можете просто спрятать его, отменить привязку и щелкнуть элемент, чтобы эффективно «удалить» его?

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

Что-то вроде:

$('#value').dateinput('hide');
$('#value').unbind('click').unbind('focus');

Редактировать: Также

$('#value').data('dateinput', null);

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

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