2009-07-10 4 views
0

У меня есть 2 поля ввода и я использую его с DatePicker как этотJQuery UI DatePicker вопрос

$("#depart, #return").datepicker({ 
    showOn: 'both', 
    buttonImage: 'images/icon_calendar.gif', 
    buttonImageOnly: true, 
    numberOfMonths:2, 
    dateFormat: 'dd-mm-yy' 
}); 

В какой-то момент я хочу, чтобы удалить возвратную поле и я делаю это с .remove() метод. Затем, используя метод .after, я снова добавляю это поле в форму. Но функция datepicker недоступна.

Это имеет смысл, но я не знаю, как переназначить выбор даты для вновь созданного поля?

+3

Почему бы вам просто не спрятать «возвращение» на какое-то время? – TheVillageIdiot

ответ

0

После повторного добавления поля, вам нужно вызвать .datepicker на поле

Working Demo to demonstrate

Примечание о демо: поскольку добавить кнопки добавит текстовый ввод с id = "return", добавив более одного, испортит вход, к которому привязан datepicker.

$("[where you're inserting]").after("<input id='return' type='text' />"); 

$('#return').datepicker({ 
    showOn: 'both', 
    buttonImage: 'images/icon_calendar.gif', 
    buttonImageOnly: true, 
    numberOfMonths:2, 
    dateFormat: 'dd-mm-yy' 
    }); 

Я бы рекомендовал только hiding вход затем showing его еще раз, когда вам нужно, а не удаляя затем повторно вставить в DOM.

0

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

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

$("#return").remove(); 

$("something").after(myReturnfield); 

$("#return").datepicker(myDatepickerSettings); 
+0

вот что я подумал, но я не уверен, что когда я удалю его, исходный объект datepicker будет уничтожен или все еще активен. – user119210

+0

Нет, я думаю, что метод datepicker просто добавляет прослушиватель событий к выбранным объектам. Как только объект будет уничтожен, слушатель не будет работать для этого конкретного, но он не повлияет на другой. –