IE8 не работает с JQuery Dialog - PullRequest
       57

IE8 не работает с JQuery Dialog

2 голосов
/ 08 февраля 2012

У меня есть 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?

Ответы [ 4 ]

2 голосов
/ 17 октября 2012

У меня была похожая проблема, но мое решение было другим: на моем сайте есть несколько флеш-объектов. Эти объекты визуализируются IE постоянно на переднем плане. В результате диалоговое окно появляется за объектами флэш-памяти, и я вижу только экран блокировки без диалогового окна.

Мое уродливое решение: я скрываю объекты флэш-памяти до того, как появится диалоговое окно. Когда диалог закрыт, я снова показываю объекты. Это работает.

2 голосов
/ 08 февраля 2012

У меня было то же самое, что случилось со мной некоторое время назад. Это ваш точный код 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 голос
/ 01 октября 2013

Я обнаружил ту же ошибку, добавив класс CSS с помощью jQuery, например:

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":'dialog_Cancel',
1 голос
/ 10 января 2013

В моем случае дополнительный закрывающий div создает проблему.

<div class="comment_video"  >
 // content
</div>
</div>  // this closing div is creating problem.

Я удалил последний дополнительный закрывающий div, и он работает нормально. Похоже, IE 8 очень строг со стандартами HTML

Надеюсь, это поможет.

...