Remotipart JS不执行

时间:2013-05-23 18:43:00

标签: ruby-on-rails-3 remotipart

我有一个表单,需要将.csv文件提交给服务器,然后将其中的单词追加到我页面中的textarea。我正在使用Remotipart使用AJAX上传.csv,但我无法在服务器响应中获取javascript来执行。以下是我的代码的相关部分:

表格:

=form_tag(upload_canvas_words_admin_page_widget_widget_instance_path(widget.page, widget),:method=>'post',:remote=>true,:multipart=>true,:class=>"upload_words_csv") do
        = label_tag "Upload File"
        = file_field_tag "file"
        = submit_tag "Upload"

控制器:

def upload_canvas_words
    @csv_text = params[:file].read
end

.js.haml文件:

= remotipart_response do
    - if remotipart_submitted?
        alert('#{@csv_text}');
        alert('!');
    - else 
        alert('WHYYYYY?');

当我看到响应时,我看到javascript被包装在一堆html中,我认为这与iFrame传输有关。但javascript实际上从未执行过。

2 个答案:

答案 0 :(得分:0)

请参阅此问题。并尝试遵循此处给出的解决方案。

https://github.com/JangoSteve/remotipart/issues/89

所以会发生的是,响应是通过textarea中的html实体(如")到达浏览器。当提取用于评估的js代码时,html实体将被它们各自的字符替换(例如“to”)。

这是textarea的特征。所以它没有被执行

答案 1 :(得分:0)

data: {type: :script}添加到表单应该是修复