Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery RJS插入字符串与dom_Jquery_Ruby On Rails - Fatal编程技术网

jQuery RJS插入字符串与dom

jQuery RJS插入字符串与dom,jquery,ruby-on-rails,Jquery,Ruby On Rails,因此,我尝试使用jQuery从ajax调用插入数据 实际上,我使用jquery.form插件,并使用数据类型提交ajax表单:“script” 响应是一个jquery表达式,其中包含一个erb标记(类似于railscasts第136集指示的操作)。但是最终的结果是,渲染的全文被插入,就好像这是要插入页面的内容一样,作为文本,而不是dom元素 渲染在开始时有一些新行这一事实可能是原因吗 Dom文本:“\n\n li>…/li>” 我还尝试让jQuery将响应作为脚本读取并执行它,并使用基于原型的r

因此,我尝试使用jQuery从ajax调用插入数据

实际上,我使用jquery.form插件,并使用
数据类型提交ajax表单:“script”

响应是一个jquery表达式,其中包含一个
erb标记(类似于railscasts第136集指示的操作)。但是最终的结果是,渲染的全文被插入,就好像这是要插入页面的内容一样,作为文本,而不是dom元素

渲染在开始时有一些新行这一事实可能是原因吗

Dom文本:
“\n\n li>…/li>”

我还尝试让jQuery将响应作为脚本读取并执行它,并使用基于原型的rjs内容,同样的效果是,将文本插入dom。有什么理由会有这样的行为

需要澄清一下:

我的回答是

jQuery("#content").append("<%= escape_javascript(render(:partial => "widgets")) %>");
jQuery("#information").text("Finally, something happened!");
jQuery(“#content”).append(““widgets”)%%>”;
jQuery(“#信息”).text(“最后,发生了什么事!”);
append()调用中的全文作为文本插入到#content中

更新:


我一直在研究这个问题。结果表明,rails之所以转义字符,是因为它认为它正在呈现一个常规的.html文件。原因是它没有显示.js即将出现,因为post是使用iframe完成的(post包含一个文件)。如果我在请求末尾添加一个.js,我可以执行一个
respond_to do | format | format.js
,但是它不支持http POST。有没有办法将其配置为接受.js操作请求的帖子?

我猜这是因为您将数据类型设置为“script”。如果希望将AJAX调用的结果视为DOM元素,请将其更改为HTML


这还取决于将结果插入文档的方式。我怀疑这种情况,但如果使用.text()而不是.html(),则会得到纯文本而不是DOM元素。

我猜这是因为您将数据类型设置为“script”。如果希望将AJAX调用的结果视为DOM元素,请将其更改为HTML


这还取决于将结果插入文档的方式。我对此表示怀疑,但是如果您使用的是.text()而不是.html(),那么您将得到纯文本而不是DOM元素。

不完全是这样,我考虑过将响应更改为html,并让脚本在适当的地方将其注入,不过我想要一种更RJS风格的行为。请看我的澄清。看来这将是可以接受的答案。Rails似乎不支持在不进行HTML实体转义的情况下呈现erb模板。因此,当输出被发送到iframe时,所有内容都被转义且不可用。不完全是这样,我考虑过将响应更改为HTML,并让脚本在适当的地方将其注入,不过我希望使用更RJS风格的行为。请看我的澄清。看来这将是可以接受的答案。Rails似乎不支持在不进行HTML实体转义的情况下呈现erb模板。因此,当输出被发送到iframe时,所有内容都被转义,无法使用。