2011-06-21 3 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...} 

作るとき、私は内のすべてのプラグインとUI 1.8.13カスタムでのjQuery 1.5.1を持っています。 これは、準備ができて、文書内のダイアログ

$("#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 id="dialog">some text</div> 
+1

私達にあなたのソースコードを表示してください。 – reporter

+0

あなたのdivのコードを共有してください – DKSan

+0

'.dialog()'を呼び出すコードを見ると参考になるでしょう。 –

答えて

1

は、それは私のコードでは、全体のオプションが来ているということであるdiv要素であります$ .getJsonを使用してJSONエンコードされたサーバーの応答から:

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

瞬間に私はr.optionsへのボタンは、このまったく同じエラーaをオブジェクトと呼ばれるキーを追加しましたppeared。

だから、応答(r)はbasicly次のようになります。r.optionsからボタンを削除する

content 
    "<form action="/editor">...</form>" 
options 
    resizable false 
    width 600 
    modal true 
    buttons 
     Ok "function(){alert('test')}" 

は、エラーメッセージが離れて行くことができます。私はボタンのいくつかの異なるキー/値を試しましたが、そのどれも重要ではないようです。

jQuery UIバージョン1.8.16およびjQueryバージョン1.6.2を使用しています。

もう少し読んだ後、私たちは両方とも同じミスを犯していることがわかりました。

$(".selector").dialog({ buttons: [ 
    { 
     text: "Ok", 
     click: function() { $(this).dialog("close"); } 
    } 
] }); 

(出典:http://jqueryui.com/demos/dialog/)だから、

あなたは、キー/値のペアが、キーのテキストを含むサブアレイを使用してすべきではありませんあなたはjQueryのUIダイアログのドキュメントを見れば、それは、次の例を示しますをクリックします。

私はこの両方が間違っている(と私は同じ問題を持つ他の人を見つけた)ので、私はこれが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() { } 
    } 
    ] 
}); 
関連する問題