写作时
var x = "<%= select_tag(:activity_group, options_for_select(activity_grp),{:include_blank => 'Create New Group', :style => 'width: 100px'}) %>";
和
<% activity_grp = @activity_group.map { |ag| [ag.name, ag.id] } %>
但是,我在Firebug中收到错误(缺少;在语句之前),因为
var x = "<select id="activity_group" name="activity_group" style="width: 100px"><option value="">Create New Group</option><option value="1">Movie</option>
<option value="2">Report</option>";
生成的代码需要多行。我试过html_safe,但它不起作用
有人可以指导我之前遇到此错误吗?
答案 0 :(得分:0)
你对x
做了什么?这可以转移到部分?在任何情况下,您都不会尝试对其进行HTML安全保护,而是尝试JavaScript-safe它。
答案 1 :(得分:0)
根据戴夫的回答,我通过JavaScript安全
解决了这个问题<% @x = select_tag(:activity_group, options_for_select(activity_grp),{:include_blank => 'Create New Group', :style => 'width: 100px'}) %>
然后在我的JS区写了
var abc = "<%= escape_javascript(@x)%>";
它工作正常。希望这个帮助