-1

我正在尝试将值传递给 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...

帮助文件

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});

};
4

1 回答 1

2

更改以下行

    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

于 2013-04-11T10:04:08.497 回答