我有一个HTML表单:
<div id="dialog" class="event-dialog" title="Create Event">
<div id="dialog-inner">
<table>
<tr><td align="left">Event Name:</td><td align="left"><input type="text" name="name" id="name" class="text ui-widget-content ui-corner-all title"></td></tr>
<tr><td align="left" valign="top">Event Description:</td><td><textarea name="description" id="description" class="text ui-widget-content ui-corner-all" rows="3" cols="40"></textarea></td></tr>
<tr><td align="left">All Day Event:</td><td align="left"><input id="all-day" type="checkbox" value="false"></td></tr>
</table>
</div>
</div>
我还有以下jQuery代码:
jQuery("#dialog").dialog({
autoOpen: false,
height: 600,
width: 700,
modal: true,
buttons: {
'Create event': function () {
name = jQuery("#name").val();
jQuery(this).dialog('close');
},
Cancel: function () {
jQuery(this).dialog('close');
}
},
close: function () {
}
});
我在jQuery代码中删除了一些内容,只是为了缩短StackOverflow的内容。该代码适用于Chrome,Firefox,Safari等,但由于某种原因,它只是在IE8中显示对话框。知道为什么它不会隐藏IE8中的表单吗?
答案 0 :(得分:2)
我刚才有同样的事情发生在我身上。这是您确切的HTML代码吗?如果没有,请确保不在对话框div中使用自动关闭标签。
<div id="dialog-save">
<div id="content" /> //this one didn't work.
<div id="content"></div> //this one worked.
</div>
出于某种原因,IE不喜欢jquery-ui的自动关闭标签。
答案 1 :(得分:2)
我有类似的问题,但我的解决方案是另一个:在我的网站上有一些flash对象。这些对象由IE永久呈现在前景中。结果是,对话框出现在flash对象后面,我只看到没有对话框的锁屏。
我丑陋的解决方案:在显示对话框之前隐藏flash对象。关闭对话框后,我再次显示对象。这很有效。
答案 2 :(得分:1)
在我的情况下,额外的结束div会产生问题。
<div class="comment_video" >
// content
</div>
</div> // this closing div is creating problem.
我删除了最后一个额外的结束div,它运行正常。 看起来IE 8对HTML标准非常严格
我希望它有所帮助。
答案 3 :(得分:1)
我通过添加带有jQuery的CSS类来发现同样的错误:
jQuery( "#dialog-noresult" ).dialog({
modal: true,
autoOpen: false,
width: 500,
height: 630,
buttons: {
"Cancel": {
text: 'Cancel',
class: 'dialog_Cancel',
click: function() {
jQuery( this ).dialog( "close" );
}
}, ...
});
我通过在class选项中添加引号来解决它。
"class":'dialog_Cancel',