申し訳ありませんが、これは愚かな質問ですが、これを動作させることはできません。ダイアログパネル内でフォームを取得しようとしています。私はそれがダイアログ外で動作するため、フォームの構文はokです知っているRails/ERBを使用してJquery UIダイアログパネル内にフォームを作成
$(function() {
$('#add_tag').html(
"<fieldset>"
"<%= escape_javascript(form_tag(save_tag_path(:id=>@recipe.id), :remote=>true) do) %>" +
" <%= escape_javascript(label_tag(:new_tags, 'Your tags separated by commas')) %>" +
" <%= escape_javascript(text_field_tag :new_tags) %>" +
" <%= escape_javascript(submit_tag :submit) %>" +
"<% end %>" +
"</fieldset>"
);
$('#add_tag').dialog({
title: "Add Tags",
height: 300,
width: 350,
modal: true
}
);
});
:フォームは、AJAX要求し、得られjs.erbファイルの結果は次のようになります。私はそれが適切にエスケープされていない何かを仮定している?前もって感謝します!
UPDATE:。。
$('#add_tag').html(
"<fieldset>"
+ "<%= form_tag(save_tag_path(:id=>@recipe.id), :remote=>true) do %>"
+ " <%= escape_javascript(label_tag(:new_tags, 'Your tags separated by commas')) %>"
+ " <%= text_field_tag :new_tags %>"
+ " <%= submit_tag :submit %>"
+ "<% end %>"
+ "</fieldset>"
);
$('#add_tag').dialog({
title: "Add Tags",
height: 300,
width: 350,
modal: true
}
);
:ベン・シンプソンが正しく指摘したようにしかし、私はまだ何もERBを使用して、私のパネルに描画されなかっ取得ここで私が今持っているものである私は$(関数(){}ラッパーを削除
しかし、私はちょうどそれが動作レンダリングレールの形で入れ場合、すなわち:。
$('#add_tag').html(
"<fieldset>"
+ '<form method="post" data-remote="true" action="/recipes/1/save_tag" accept-charset="UTF-8">'
+ '<div style="margin: 0pt; padding: 0pt; display: inline;">'
+ '</div>'
+ '<label for="new_tags">Your tags separated by commas</label>'
+ '<input id="new_tags" type="text" name="new_tags">'
+ '<input type="submit" value="submit" name="commit">'
+ '</form>'
+ "</fieldset>");
ああ、はい。私はDOMについて考えていませんでした。しかし、それを削除しても、私は何も得られません。しかし、フォームタグだけでerbコードを切り替えると、それは動作します。これまでの助けてくれてありがとう! –
このAJAXレスポンスが読み込まれた後、Javascriptコンソールで$( 'add_tag')。html()を実行すると、HTMLが表示されますか?
はい!それはそれを解決しました! –