我正在尝试将值传递给JavaScript函数,但是当我单击锚标记(加上图标)时,它会在Firebug上给出以下错误。
我要做的是,点击“加号”,我将部分字段添加到表格中。我在这里做错了什么?
目前<th>
内有一个带“+”的表格。我想将数据(从部分)附加到表格。
错误
SyntaxError: syntax error
[Break On This Error]
add_fields(this, contact, "<tr class=\'fields\'>\n<td>...
帮助文件
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'
partial _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});
};
答案 0 :(得分: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