2011-10-17 4 views
5

W projekcie ASP.NET, szukam sposobu na pojawienie się datownika JQueryUI po naciśnięciu przycisku, a następnie wywołanie odświeżenia po wybraniu daty. Dostałem część odświeżania działającą przy użyciu this method, ale mam problem z pobieraniem selektora, gdy chcę go lub zachowam się poprawnie po wybraniu daty.Pokazywanie datepicker jQueryUI w naciśnięciu przycisku bez angażowania pola wejściowego

Próbowałem:

  • Mocowanie próbnika do samego przycisku, ale ustawia tekst przycisku z wybranym terminie po tym, jak wybrać i przed odświeżenie strony zdarza się, który nie chce .
  • Dołączanie selektora do przycisku i ustawianie opcji altField na <input type='text' />, która jest ustawiona poza oknem przeglądarki, ale nadal ustawia tekst przycisku po wybraniu daty.
  • Wykonywanie tego w trybie inline przez dołączenie go do div i utworzenie go w onclick przycisku. Ale według this forum post wbudowany datepicker według projektu nie pokazuje przycisku Gotowe i nie mogę go zamknąć, klikając poza nim.
    • Próbowałem dodać własny przycisk Gotowe do kontenera przycisku datepaktora (który pojawia się, gdy ustawiono showButtonPanel), ale znika, gdy miesiąc lub rok się zmienia i żadne z wydarzeń, które nie mogę związać, wydaje się dopuszczać mi to dodać.
    • Próbowałem dołączyć do dokumentu uchwyt do obsługi formatu mouseup, dzięki czemu mogę odrzucić datepicker po kliknięciu poza nim, ale to uruchamia się po kliknięciu w datepicker i wydaje się uniemożliwiać pracę selektora.

Jakie jest najlepsze podejście?

Odpowiedz

6

Użyłem ukrytą input pole przed i dołączony do niego datepicker z udanych wyników:

$("#date").datepicker({...}); // #date has style display='none' 

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

Przykład:http://jsfiddle.net/7pttr/

+4

To działało po pewnym fiddling. Co ciekawe, pojawia się błąd Javascript na '$ ('# myHiddenInput'). Datepicker ('show');' jeśli ukryte dane wejściowe nie są pierwszymi potomkami jego rodzica. Zdradliwy! –