2009-07-09 9 views
1

Wir verwenden jQuery 1.3.2 und jQuery UI 1.7.2 in unserem Projekt.jQuery UI 1.7.2 - Opera Problem mit Formular-Dialog

Alles funktionierte perfekt, bis wir jQuery UI 1.7.1 benutzten. Dann haben wir ein Upgrade auf jQuery UI 1.7.2 durchgeführt, aber es verursacht Probleme in Opera (9.63).

Das Problem ist wie folgt: -
Es gibt ein jQuery UI-Dialogfeld mit einem Textfeld und einem Absenden-Button, der die Daten in "Textarea" an den Server sendet. Vor dem Öffnen des Dialogs wird der Wert von textarea auf leer gesetzt. Auch ich benutze Modal: true, um das Overlay zu bekommen.

Jetzt, wenn ich den Dialog zum ersten Mal öffne, geben Sie einige Daten in Textarea und klicken Sie auf Senden, es die Daten an server.Then schließe ich den Dialog, und öffnen Sie es erneut, geben Sie etwas Text in den Textbereich und erneut einreichen. Diesmal schreibt es leere Daten (oder welchen Wert auch immer für das "textarea" vor dem Öffnen des Dialogs gesetzt wurde.)

Das Problem ist nur in Opera und Ruhe Browser funktionieren gut. Sogar Opera funktioniert gut, wenn ich Modal als falsch setze, oder wenn ich jQuery UI 1.7.1 verwende.

Hier ist ein Beispielprogramm.

 

google.load("jquery", "1.3.2"); google.load("jqueryui", "1.7.2"); //Attach a hidden dialog to body. function initDialog() { var innerDiv = $("`<div>`"); $(innerDiv).attr({'id' : 'testDialog'}); var textBox = $("`<textarea>`"); $(textBox).attr({'id' : 'testBox', 'rows' : '2'}); $(innerDiv).append(textBox).appendTo('body'); $('#testDialog').css('visibility', 'hidden'); $('#testDialog').dialog({ autoOpen : false, width : 500, modal : true, title : 'Enter text and click Alert', buttons : { "Alert" : function() { alert($('#testBox').val()); } } }); } //Show the hidden dialog. function showDialog() { $('#testDialog').css('visibility', 'visible'); $('#testBox').val(''); $('#testDialog').dialog('open'); } window.onload = function() { initDialog(); $('#mylink').click(function(){ showDialog(); }); } </script> <body> <a href="javascript:void(0);" id='mylink'>Click here </a> </body>

Wenn wir google.load ("jquery", "1.7.1") verwenden, wird es perfekt funktionieren.
Oder wenn ich modal: false dann auch es wird gut funktionieren.

Antwort

2

Wenn in 1.7.1 alles einwandfrei funktioniert, bleibe ich dabei und melde den Fehler auf der Entwicklerseite.

0

Opera hat auch eine console debugger. Ich denke, es wird helfen, den Entwicklern eine Fehlermeldung zu geben, die Sie erhalten können, wenn Sie sie aktivieren.