首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Escape_javascript问题

Escape_javascript问题
EN

Stack Overflow用户
提问于 2009-11-14 15:05:41
回答 1查看 553关注 0票数 0

我在我的用户/编辑页面上有一组相关的下拉菜单。用户选择父级下拉列表,这将限制子级下拉列表中的可用选项。用户可以添加多组附加的父/子下拉菜单。产品是父对象。变化就是孩子。

除非在数据库中输入了包含双引号的变体,否则这一切都很有效。当发生这种情况时,它会破坏javascript,并且呈现部分的触发器根本不起作用。

单引号不会导致这个问题,我尝试过的任何其他字符也不会造成这个问题。所以这个问题是针对双引号的。我认为escape_javascript是这里的答案,但我已经尝试将它放在代码中的许多不同位置,但都没有起作用。很有可能我只是不知道helper和它的括号应该放在哪里。

api文档很糟糕。它显示为escape_javascript()。这对我没什么帮助。同样,在线上也没有太多明确的指导。我找了好几个小时了。

以下是我的代码的相关部分:

Users#edit.html.erb

代码语言:javascript
复制
<%= render :partial => 'season', :collection => @user.seasons %>

Users#_season.html.erb

代码语言:javascript
复制
<% fields_for prefix, season do |season_form| -%>
  <%= error_messages_for :season, :object => season %>
    Product: <%= season_form.collection_select :product_id, Product.find(:all, :order =>'name'), :id, :name, {:prompt => "Select Product"}, {:onchange => "collectionSelected(this);"} %>

    <% varieties = season.product ? season.product.varieties : Variety.all %>
    <%= season_form.select :variety_id, options_from_collection_for_select(varieties, :id, :name, season.variety_id), :prompt => "This is optional" %>    

Javascripts#dynamic_varieties.js.erb

代码语言:javascript
复制
var varieties = new Array();
<% for variety in @varieties -%>
  varieties.push (new Array (<%=h variety.product_id %>, "<%=h variety.name %>", <%=h variety.id %>));
<% end -%>


function collectionSelected(e) {
  product_id = e.getValue();
  options = e.next(1).options;
  options.length = 1;
  varieties.each(function(variety) {
    if (variety[0] == product_id) {
      options[options.length] = new Option(variety[1], variety[2]);
    }
  });
}
EN

回答 1

Stack Overflow用户

发布于 2009-11-14 16:39:02

假设您只是做了一些错误的转义( rails正确地进行了转义),您可以尝试如下所示:

代码语言:javascript
复制
var varieties = <%= @varieties.map { |v| [v.product_id, h(v.name), v.id] }.to_json %>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1733562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档