在与jquery-ui进行对话时,永远不会发生在我身上。我有一个div,当我使用.dialog进行对话时,我收到此错误
[Exception... "String contains an invalid character" code: "5" nsresult: "0x80530005 (NS_ERROR_DOM_INVALID_CHARACTER_ERR)" location: "http://localhost/include/jquery-1.5.1.min.js Line: 16"] { constructor=DOMException, code=5, more...}
我有jquery 1.5.1,UI 1.8.13自定义,里面有所有插件。 这是文档就绪
中对话框的代码 $("#dialog").dialog({
bgiframe: true,
height: 200,
width: 150,
modal: false,
show: 'blind',
hide: 'blind',
resizable: false,
position: [270,150],
autoOpen: false,
zIndex: 997,
buttons: {
"Reset": function() {
}
}
});
这就是div
<div id="dialog">some text</div>
答案 0 :(得分:1)
我遇到完全相同的问题唯一不同的是,在我的代码中,整个选项来自使用$ .getJson的JSON编码服务器响应:
$.getJSON(
'/get-dialog',
function(r){
$('<div>' + r.content + '</div>').dialog(r.options);
}
);
目前,我在r.options对象中添加了一个名为按钮的键,出现了完全相同的错误。
所以响应(r)基本上是这样的:
content
"<form action="/editor">...</form>"
options
resizable false
width 600
modal true
buttons
Ok "function(){alert('test')}"
从r.options中删除按钮会使错误消息消失。我为按钮尝试了几种不同的键/值,但这些都不重要。
使用jQuery UI版本1.8.16和jQuery版本1.6.2。
在进一步阅读之后,我发现我们都犯了同样的错误。如果你看一下jQuery UI Dialog文档,它给出了以下例子:
$( ".selector" ).dialog({ buttons: [
{
text: "Ok",
click: function() { $(this).dialog("close"); }
}
] });
(资料来源:http://jqueryui.com/demos/dialog/)
因此,您不应该使用键/值对,而是包含键文本和单击的子数组。
因为我们两个都做错了(并且我发现其他人遇到了同样的问题)我猜测这已经在jQuery UI中的某些版本上进行了更改。我不确定它什么时候改变了。
所以在你的情况下,正确的代码是:
$("#dialog").dialog({
bgiframe: true,
height: 200,
width: 150,
modal: false,
show: 'blind',
hide: 'blind',
resizable: false,
position: [270,150],
autoOpen: false,
zIndex: 997,
buttons: [
{
text: "Reset",
click: function() { }
}
]
});