2011-11-12 18 views
8

Używam datepicker jquery w jednym z moich projektów i muszę wyzwolić datepicker, klikając hiperłącze, które jest obok mojego obszaru wprowadzania.Datepicker Jquery - ręczne wyzwalanie

Niestety nie mogę tego uruchomić z jakiegoś powodu.

Mam obszar wejściowy i hiperłącze Chciałbym uruchomić kalendarz w obszarze wprowadzania danych.

<input type="text" id="date" /><a href="#" class="trigger">Show calendar</a> 

Próbowałem wymyślić kodu JavaScript, takich jak:

$(".trigger").click(function(){ 
$("#date").datepicker("show"); 
}); 

jak ktoś inny w jednym z poprzednich dyskusji zalecane, aby użyć metody wykazują, aby kalendarza pop-up. Ale to nie działa.

Kod takich jak

$(function() { 
$("#date").datepicker(); 
}); 

działa dobrze, ale po prostu klikając w obszar wejściowy (nie na wyzwalanie hiperłącza).

Czy ktoś ma jakiś pomysł lub sugestię, jak to działa? O ile wiem, nie jestem jedynym, który szuka rozwiązania.

Dziękuję bardzo! ;)

+0

zobacz tutaj - najlepsza odpowiedź na pytanie http://stackoverflow.com/questions/2198741/jquery-ui-datepicker-making-a-link-trigger-datepicker –

Odpowiedz

15

Czy funkcja zdarzenia click() w funkcji jQuery(document).ready()?

Ponieważ jQuery rekursywnie przypisze procedurę obsługi zdarzeń kliknięcia do każdej klasy zdefiniowanej podczas ładowania strony.

W przeciwnym razie, nie będzie nic robić, czy to siedząc na zewnątrz gotowej funkcji dokumentu, tak jak poniżej:

$(function() { 
    $("#date").datepicker(); 
    $(".trigger").click(function(){ 
     $("#date").datepicker("show"); 
    }); 
}); 

też będę zakładać masz jQuery załadowany i wtyczki datepicker załadowana w głowie z HTML dokumentu :)

+0

Tak, przepraszam, że wzięłam tę część za pewnik, więc nie jest zawarte w moim przykładzie. Skrypt JS zaczyna się od $ (document) .ready (function() {..... Ale nadal nie działa :( – Ondrej

+0

Właśnie wypróbowałeś swoje dostosowane rozwiązanie i działa jak czar! Dziękuję bardzo !;) – Ondrej

1

używam tego:

$(".ui-datepicker-current-day").trigger("click");