Мы используем в нашем проекте 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, то также будет работать нормально.