-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 に答える