2011-06-21 61 views
0

與jquery-ui進行對話時,從未發生過我。我有一個div,當我使其與.dialog我得到這個錯誤字符串在jquery-ui對話框中包含無效字符

[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> 
+1

請告訴我們你的源代碼。 – reporter

+0

請分享你的div的代碼 – DKSan

+0

看到調用'.dialog()'的代碼會很有幫助,它可能會導致你的參數出錯。 –

回答

1

我遇到相同問題唯一的區別是,在我的整個代碼選項來了使用$ .getJson一個JSON編碼的服務器響應:

$.getJSON(
    '/get-dialog', 
    function(r){ 
     $('<div>' + r.content + '</div>').dialog(r.options); 
    } 
); 

目前,我添加了一個名爲按鈕將r.options反對此相同錯誤的關鍵ppeared。

所以響應(R)basicly看起來是這樣的:

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用戶界面對話框文檔它提供了以下例子:

$(".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() { } 
    } 
    ] 
});