jQuery UI 1.7.2 - проблема Opera с диалоговым окном формы - PullRequest
1 голос
/ 09 июля 2009

Мы используем в нашем проекте jQuery 1.3.2 и jQuery UI 1.7.2.

Все работало идеально, пока мы не использовали jQuery UI 1.7.1. Затем мы обновили до jQuery UI 1.7.2, но это вызывает проблемы в Opera (9.63).

Проблема заключается в следующем: -
Существует диалоговое окно jQuery UI с текстовой областью и кнопкой отправки, которая отправляет данные в текстовой области на сервер. Перед открытием диалога значение textarea устанавливается пустым. Также я использую Modal: true, чтобы получить оверлей.

Теперь, когда я впервые открываю диалоговое окно, вводю некоторые данные в textarea и нажимаю кнопку отправить, они отправляют данные на сервер. Затем я закрываю диалоговое окно и снова открываю его, снова введите текст в текстовую область и отправляю снова. На этот раз он публикует пустые данные (или любое другое значение, заданное для "textarea" перед открытием диалога.)

Проблема только в Opera, остальные браузеры работают нормально. Даже опера прекрасно работает, если я установил модальное значение как false или если я использую jQuery UI 1.7.1.

Вот пример программы.

</p>

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>

Если мы используем google.load ("jquery", "1.7.1"), он будет отлично работать.
Или, если я установил modal: false, то также будет работать нормально.

Ответы [ 2 ]

2 голосов
/ 09 июля 2009

Если в 1.7.1 все работает отлично, я бы придерживался этого и сообщал об ошибке на сайт разработчика.

0 голосов
/ 09 июля 2009

Opera также имеет консольный отладчик .Я думаю, что это поможет передать разработчикам сообщение об ошибке, которое вы можете получить, если активируете его.

...