Mam formularz z wieloma elementami wejściowymi. Niektóre są data pola z datepicker jQuery UI alraedy załączonym:Sprawdź, czy element ma już datepicker jQuery
$("#someElement").mask("9?9/99/9999").datepicker({showOn: 'button', buttonText:'Click here to show calendar', duration: 'fast', buttonImageOnly: true, buttonImage: /images/calicon.gif' });
Potem kluczową komendę związany z tą funkcją:
function openCalendar() {
var selection = document.activeElement;
// { Need to test here if datepicker has already been initialized
$(selection).datepicker("show");
// }
}
Działa to doskonale na elementach, które mają już datepicker na nich. Jednak każde inne pole spowoduje błąd javascript. Zastanawiam się, jaki jest najlepszy sposób na sprawdzenie, czy datepicker został już zainicjowany na tym polu.
Aby sprawdzić, czy autouzupełnianie jQuery UI zostało zainicjowane, użyłem tego: '$ ('# myinput'). (": Dane (autouzupełnianie) ")'. Zakładam, że działa to również dla datepicker. –
Tylko dlatego, że klasa znaczników nie zawsze oznacza, że datepicker znajduje się w węźle. W Datatables, gdy przesuwa się do widoku karty, datepicker jest usuwany z węzła, ale klasa zostaje! Musisz więc dodać dodatkową kontrolę, jak powyżej, i usunąć klasę, jeśli chcesz ponownie powiązać, ponieważ datepicker wewnętrznie używa klasy jako proxy, aby zapobiec wielokrotnym powiązaniom. – Jeff