Firefox不会在JQuery模式对话框中呈现<input />元素

时间:2011-01-19 07:02:22

标签: jquery firefox input dialog modal-dialog

我试图寻找任何线索,但没有发现任何线索。请看下面的页面:

http://jqtest.encorephoenix.com/withinput.aspx(带有<input>的JQuery模式弹出窗口)

Popup在IE,​​Chrome,Safari和Opera中正确呈现。 Firefox 3.6.13无法正确呈现弹出窗口。您可以在同一网址上查看 withoutinput.aspx ,以查看Firefox是否正确呈现,因为此页面没有<input>元素。我已经尝试了以下内容而没有解决这个特殊问题:

  • 更改了doctype
  • 用于附上<input>
  • 用于附上<input>
  • 使用<input>
  • 的所有可能的CSS显示属性

任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:1)

mayur.unagar http://forums.asp.net/t/1643984.aspx提出修复,当然,它适用于所有浏览器,包括Firefox。 :)

如果您不想访问该链接,修复方法是从1.8.8 JQuery UI的自定义CSS中删除.ui-dialog类中的{overflow:hidden;}。我已经在主流浏览器的所有发布的版本中进行了测试。

答案 1 :(得分:0)

div位于页面顶部。现在,我可以通过向class

添加100px的margin-top来获得显示
.ui-dialog .ui-dialog-titlebar
{
margin-top:100px;
}

我正在探索更多。但其他人可以尝试一下 弹出窗口在IE9上也无法正常工作。

答案 2 :(得分:0)

问题可能与调用ready事件时运行的函数有关。

如果我将此功能粘贴到Firebug控制台并运行它,则会显示模态窗口:

$(function () {
    var dlg = jQuery("#divPopup").dialog({
        modal: true,
        draggable: true,
        resizable: false,
        show: 'Transfer',
        hide: 'Transfer',
        height: 400,
        width: 480,
        minHeight: 400,
        minWidth: 480,
        autoOpen: false
    });
    dlg.parent().appendTo(jQuery("#form1:first"));
});

这表明当第一次调用它时,它没有被正确绑定到DOM元素。可能与HTML验证错误或doctype相关。

我在HTML Validator中看到警告,系统认为这是一个不同的doctype。此外,以非标准方式使用元素可能会导致此类行为。

  • 此问题的解决方案是逐步减少页面上的元素,直到问题消失,然后慢慢添加元素,直到找到抛出解析器的元素为止。
  • 或者,修复doctype以使其与所使用的HTML编码标准相匹配。