プロジェクトではjQuery1.3.2とjQueryUI1.7.2を使用しています。
jQuery UI 1.7.1を使用するまで、すべてが完璧に機能していました。次に、jQuery UI 1.7.2にアップグレードしましたが、Opera(9.63)で問題が発生しています。
問題は次のとおりです:-
テキストエリアと「テキストエリア」のデータをサーバーに送信する送信ボタンを備えたjQueryUIダイアログがあります。ダイアログを開く前に、textareaの値は空白に設定されています。また、Modal:trueを使用してオーバーレイを取得しています。
初めてダイアログを開いたときに、テキストエリアにデータを入力して[送信]をクリックすると、データがサーバーに送信されます。次に、ダイアログを閉じて再度開き、テキストエリアにテキストを入力して、もう一度送信します。今回は、空のデータ(またはダイアログを開く前に「textarea」に設定された値)を投稿しています。
この問題はOperaでのみ発生し、残りのブラウザは正常に動作しています。モーダルを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を設定すると、正常に機能します。