Jquery Modal Popup在IE中无法运行

时间:2012-06-01 15:47:11

标签: jquery modal-dialog

这是我一直在使用的jquery-ui模态代码:

//jQuery form dialog modal popup and submit
$(function() {
$("#facilitiesForm").validate();

$("#facilityForm").dialog({
    autoOpen: false,
    height: 470,
    width: 650,
    modal: true,
    buttons: {
       "Send To The Facilities Manager": function() {
            $("#facilitiesForm").submit();
        },
        "Cancel": function() {
            $( this ).dialog( "close" );
        },
    },
    close: function() {
        allFields.val( "" ).removeClass( "ui-state-error" );
    }
});

$("#helpForm").validate();

$("#helpdeskForm").dialog({
    autoOpen: false,
    height: 570,
    width: 650,
    modal: true,
    buttons: {
       "Send To The Helpdesk": function() {
            $("#helpForm").submit();
        },
        "Cancel": function() {
            $( this ).dialog( "close" );
        },
    },
    close: function() {
        allFields.val( "" ).removeClass( "ui-state-error" );
    }
});

$("#adminForm").validate();

$("#adminTasksForm").dialog({
    autoOpen: false,
    height: 470,
    width: 650,
    modal: true,
    buttons: {
       "Send To The Admin": function() {
            $("#adminForm").submit();
        },
        "Cancel": function() {
            $( this ).dialog( "close" );
        },
    },
    close: function() {
        allFields.val( "" ).removeClass( "ui-state-error" );
    }
});

$("#contactFacilityManager")
    //.button()
    .click(function() {
        $( "#facilityForm" ).dialog( "open" );
    });

$("#contactHelpdesk")
    //.button()
    .click(function() {
        $( "#helpdeskForm" ).dialog( "open" );
    });

$("#contactAdminTasks")
    //.button()
    .click(function() {
        $( "#adminTasksForm" ).dialog( "open" );
    });

});

我刚开始注意到一个错误,弹出框在IE中不起作用。我得到的错误是:

Webpage error details

Message: Expected identifier, string or number
Line: 16
Char: 6
Code: 0
URI: http://newintranet/js/script.js

为什么这对IE不起作用的任何想法(在Chrome和FF上运行正常)?

2 个答案:

答案 0 :(得分:4)

第16行有一个额外的逗号,位于“取消”功能的右大括号和buttons对象的右大括号之间。

你实际上在第36和56行再次犯了同样的错误。每次都在指定对话框的按钮结束时。

IE将此视为语法错误,其他浏览器更宽松(毕竟,逗号之后的空语句不会产生任何影响)。

答案 1 :(得分:4)

因为在IE中,它在下面的代码中抛出了语法错误。删除额外的逗号,它将正常工作。

buttons: {
       "Send To The Helpdesk": function() {
            $("#helpForm").submit();
        },
        "Cancel": function() {
            $( this ).dialog( "close" );
        }, //extra comma here
    }