Rails 3:向javascript函数传递参数时出错

Rails 3: error while passing params to javascript function

本文关键字:参数 出错 函数 javascript Rails      更新时间:2023-09-26

我试图将值传递给JavaScript函数,但当我单击锚标记(加图标)时,它给了我以下Firebug错误。

我要做的是,点击"加号",我从部分添加字段到表。我哪里做错了?

当前在<th>中有一个带'+'的表。我想把数据(从部分)附加到表中。

误差

SyntaxError: syntax error
[Break On This Error]   
add_fields(this, contact, &quot;&lt;tr class='&#x27;fields'&#x27;&gt;'n&lt;td&gt...

Helper文件

module TestHelper
    def add_fields(name, obj)
        if (obj == 'contact')
            fields = render :partial => '/test/add_fields', :locals => {:map_values => ["Name", "URL", "Address"]}  
            link_to_function(name, h("add_fields(this, #{obj}, '"#{escape_javascript(fields)}'")"))
        elsif (obj=='company')
            fields = render :partial => '/test/add_fields', :locals => {:map_values => ["CName", "CURL", "CAddress"]}   
            link_to_function(name, h("add_fields(this, #{obj}, '"#{escape_javascript(fields)}'")"))
        elsif (obj=='lead')
            fields = render :partial => '/test/add_fields', :locals => {:map_values => ["LName", "LURL", "LAddress"]}   
            link_to_function(name, h("add_fields(this, '"#{obj}'", '"#{escape_javascript(fields)}'")"))
        end
    end
end

视图文件

=add_fields 'Add', 'contact'
部分_add_fields.html.haml

%tr.fields
  %td
    %select{:class => 'select-two'}
      - map_values.each do |e|
        %option #{e}

js文件

add_fields = function(obj, maptype, content){
  //console.log(obj.closest('.table'));
  var parent = $(obj).closest('.table');
  var msg_obj = $('.alert.alert-info',parent);
  if(msg_obj.length > 0) {
    msg_obj.closest('tr').addClass('hidden');
  }
  $('tbody',parent).append(content);
  $("select.select-two").select2({allowClear: true});
};

改变下面一行

    link_to_function(name, h("add_fields(this, '"#{obj}'", '"#{escape_javascript(fields)}'")"))

    link_to_function("name", "add_fields(this, '#{obj}', '#{j(fields)}'
)".html_safe) 

h()函数在rails 3中已经过时

使用raw "string"

"string".html_safe