2010-11-11 7 views
7

Próbuję użyć widgetu datepicker jQuery UI 1.7.3 w oknie dialogowym interfejsu użytkownika jQuery. Zawartość okna dialogowego pochodzi z szablonu strony, który zawiera wszystkie różne importy javascript wymagane do działania strony. Jedną z rzeczy, które również importuję, jest słynny plik date.js.jQuery UI 1.7.3 konflikt datepicker z date.js powodując "zbyt wiele rekursji"?

Strona, którą wczytuję w oknie dialogowym, istnieje samodzielnie jako samodzielna strona. Datepicker działa tam jak urok. Wszystko się psuje, gdy ładuję je w oknie dialogowym. Po ustawieniu fokusa na pole wprowadzania daty powinien się pojawić datepicker. Jednak uzyskać obrzydliwe błąd tak:

too much recursion 
[Break on this error] return w;};Date.prototype.isDST=function...ase"z":return"";}}):this._toString();};\n 

datepicker kalendarz nie wyświetla i mam 1 błąd w moim Firebug mówiąc, że to date.js że jest rzygać. W przeszłości napotkałem podobne problemy, które miały zbyt wiele problemów z rekurencją, ale nigdy nie jestem pewien, jak naprawić takie błędy.

Czy ktoś może mi powiedzieć, o co chodzi?

+0

Natrafiłem na ten problem, gdy przez pomyłkę przekazałem ciąg znaków zawierający elementy HTML, w których oczekuje się pojedynczej wartości. jQuery zaczyna analizować, a pakiet js przekracza rekursję. Tylko wskaźnik pomaga w debugowaniu kodu. – Ajaxe

Odpowiedz

2

Udało mi się używać datepicker w modalnym oknie dialogowym jqueryui, wersja 1.8.9. Ale włączam .js jako "all-in-one".

Powinieneś spróbować zaktualizować jqueryui lub użyć kompletnego pakietu jako jednego pliku do testowania, a jeśli to nie zadziała, podaj awaryjny test, abyśmy mogli na niego spojrzeć.

3

Używam również jQuery UI 1.7.3 i date.js dla okna modalnego i miałem ten sam problem. Przesyłałem wszystkie skrypty potrzebne do samodzielnej strony i do okna dialogowego za jednym razem, ale oznaczało to, że niektóre z tych samych skryptów zostały faktycznie skopiowane z głównego okna aplikacji do okna dialogowego. Usunięcie odniesień do zduplikowanych skryptów (dla okna dialogowego) naprawiło problem.

Zasadniczo plik Date.js został dwukrotnie wczytany, co naprawiło problem.

+0

+1 To __rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr. : D – diosney

+0

Pomógł, dzięki. – Depado