Пользовательский интерфейс jQuery 1.7.2 - Проблема Opera с диалогом формы
Вопрос
В нашем проекте мы используем jQuery 1.3.2 и jQuery UI 1.7.2.
Все работало идеально, пока мы не начали использовать jQuery UI 1.7.1.Затем мы обновились до jQuery UI 1.7.2, но это вызывает проблемы в Opera (9.63).
Проблема заключается в следующем :-
Существует диалоговое окно пользовательского интерфейса jQuery с текстовым полем и кнопкой отправки, которая отправляет данные в "текстовом поле" на сервер.Перед открытием диалогового окна значение textarea устанавливается равным пустому.Также я использую Modal: true, чтобы получить наложение.
Теперь, когда я открываю диалоговое окно в первый раз, ввожу некоторые данные в textarea и нажимаю отправить, оно отправляет данные на сервер.Затем я закрываю диалоговое окно и снова открываю его, снова ввожу текст в текстовую область и отправляю снова.На этот раз он публикует пустые данные (или любое другое значение, которое было установлено для "текстового поля" перед открытием диалогового окна.)
Проблема только в Opera, а остальные браузеры работают нормально.Даже opera работает нормально, если я устанавливаю modal как false или использую jQuery UI 1.7.1.
Вот пример программы.
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, тогда тоже все будет работать нормально.
Решение
Если в версии 1.7.1 все работает идеально, я бы придерживался этого и сообщил об ошибке на сайт разработчика.
Другие советы
В Opera также есть консольный отладчик.Я думаю, это поможет передать разработчикам сообщение об ошибке, которое вы можете получить, если активируете его.