【问题标题】:Rails 3 jquery in js.erb template is creating escaped html?js.erb 模板中的 Rails 3 jquery 正在创建转义的 html?
【发布时间】:2010-06-19 16:15:53
【问题描述】:

在 Rails 3 中,我有一个 update.js.erb 模板,其中包含一行简单的 jquery:

$("#some_div").html("<strong>some_content</strong>");

提交表单后,所有 ajaxy 内容都运行良好,但 #some_div 中的内容被替换为“&lt;strong&gt;some_content&lt;/strong&gt;”而不是 some_content。有人知道为什么吗?

这在 Rails 2 中运行良好。提前感谢您的帮助。

更新(半解决):愚蠢的我,仍然有 jquery.form 插件挂着,它不能神奇地发挥作用。看来我又要拆开一些东西了……谢谢大家的帮助。

【问题讨论】:

  • 欢迎来到SO,请不要忘记访问stackoverflow.com/faq
  • 您使用的是.html() 还是.text()?你也确定内容没有被编码回来,例如&amp;lt;strong&amp;gt; 而不是 &lt;strong&gt;?
  • 绝对使用 .html() ...内容可能会返回编码,但我认为这是由于我显然没有完全理解的 Rails 3 魔法。我有我的 jquery.rails.js 文件和我的 助手等,但没有快乐。

标签: jquery ruby-on-rails ruby-on-rails-3


【解决方案1】:

如果您使用的是 jQuery 1.4,请尝试,

$('#some_div').html(function(i,v){
    return $('<strong>').html('some_content');
});

(ps我喜欢javascript上的单引号)

【讨论】:

  • 谢谢 Reigel ...我认为我的问题是由于我没有得到的一些 Rails 3 编码/安全字符串魔法。您的代码给了我一个错误:语法错误,无法识别的表达式:<strong>
  • @jonphillips - 这肯定轨道编码它,而不是客户端问题...需要弄清楚它为什么编码脚本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
相关资源
最近更新 更多