这是我一直在使用的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上运行正常)?
答案 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
}