我们在项目中使用 jQuery 1.3.2 和 jQuery UI 1.7.2。
在我们使用 jQuery UI 1.7.1 之前,一切都很完美。然后我们升级到 jQuery UI 1.7.2,但它在 Opera (9.63) 中引起了问题。
问题如下:-
有一个带有 textarea 的 jQuery UI 对话框和一个提交按钮,它将“textarea”中的数据发布到服务器。在打开对话框之前,textarea 的值设置为空白。我也在使用 Modal:true 来获取覆盖。
现在,当我第一次打开对话框时,在 textarea 中输入一些数据并单击提交,它将数据发布到服务器。然后我关闭对话框并重新打开它,再次在文本区域中输入一些文本并再次提交。这次它发布的是空数据(或在打开对话框之前为“textarea”设置的任何值。)
问题仅在 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 那么它也可以正常工作。