0

这是我一直在使用的 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 上运行良好)?

4

2 回答 2

4

在第 16 行,“取消”函数的右大括号和buttons对象的右大括号之间有一个额外的逗号。

实际上,您在第 36 行和第 56 行又犯了两次同样的错误。每次都在指定对话框按钮的末尾。

IE 将此视为语法错误,而其他浏览器则更为宽松(毕竟,逗号后的空语句不会有任何效果)。

于 2012-06-01T15:49:23.497 回答
4

因为在 IE 中,它会在下面的代码中抛出语法错误。删除多余的逗号它会正常工作。

buttons: {
       "Send To The Helpdesk": function() {
            $("#helpForm").submit();
        },
        "Cancel": function() {
            $( this ).dialog( "close" );
        }, //extra comma here
    }
于 2012-06-01T15:49:46.757 回答