1

我有一个表单,需要将 .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 从未真正执行过。

4

2 回答 2

0

参考这个问题。并尝试遵循此处给出的解决方案。

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

所以会发生什么是响应到达浏览器,其中包含文本区域内的 html 实体(如")。当提取用于评估的 js 代码时,html 实体将替换为它们各自的字符(如“到”)。

这是文本区域的特征。所以它不会被执行

于 2013-09-19T05:48:30.680 回答
0

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

于 2015-12-07T06:52:14.337 回答