Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JS和RubyonRails提交表单_Javascript_Ruby On Rails - Fatal编程技术网

Javascript 如何使用JS和RubyonRails提交表单

Javascript 如何使用JS和RubyonRails提交表单,javascript,ruby-on-rails,Javascript,Ruby On Rails,我有一个rails项目,它使用refilegem来处理文件上传,我想在用户在文件浏览器中选择文件后提交一个表单 我在rails应用程序的导航栏中创建了一个按钮,如下所示 \u nav.html.erb <div class='upload-image'> <form name="form_upload_image"> <p>Upload Image <i class="fa fa-upload"></i

我有一个rails项目,它使用
refile
gem来处理文件上传,我想在用户在文件浏览器中选择文件后提交一个表单

我在rails应用程序的导航栏中创建了一个按钮,如下所示

\u nav.html.erb

<div class='upload-image'>
          <form name="form_upload_image">
          <p>Upload Image <i class="fa fa-upload"></i></p>
        <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |form| %>

              <%= form.attachment_field :tshirt_image, direct: true, class: "fa fa-upload", input_html: { hidden: true, onchange: "uploadImage()" } %>

          <%= form.submit "Update", class: "btn btn-primary" %>

        <% end %> <!-- form -->
      </form>
        </div>

但是,当我在文件浏览器中选择文件并选择
Open
时,它不会提交表单。任何帮助都将不胜感激。

您确定没有调用
uploadImage
?假设是,它正在提交父表单,
form\u upload\u image

您可能不打算嵌套表单;
帮助程序的
form_呈现表单标记本身。这就是您实际想要提交的表单


您应该查看渲染输出。您可能有比预期更多的表单元素。

您确定没有调用
uploadImage
?假设是,它正在提交父表单,
form\u upload\u image

您可能不打算嵌套表单;
帮助程序的
form_呈现表单标记本身。这就是您实际想要提交的表单


您应该查看渲染输出。您可能有比预期更多的表单元素。

您最好将
更改
方法与绑定,因为使用内联JS几乎肯定会导致委托等问题:

#app/assets/javascripts/application.js
$(document).on("change", "input.fa-upload", function(e){
    $(this).parents('form').submit();
});
您最好对表单使用正确的格式:

<%= content_tag :div, class: 'upload-image' do %>
    <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |form| %>
        <%= form.attachment_field :tshirt_image, direct: true, class: "fa fa-upload", input_html: { hidden: true } %>
        <%= form.submit "Update", class: "btn btn-primary" %>
    <% end %>
<% end %>

您最好将
更改
方法与绑定,因为使用内联JS几乎肯定会导致委托等问题:

#app/assets/javascripts/application.js
$(document).on("change", "input.fa-upload", function(e){
    $(this).parents('form').submit();
});
您最好对表单使用正确的格式:

<%= content_tag :div, class: 'upload-image' do %>
    <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |form| %>
        <%= form.attachment_field :tshirt_image, direct: true, class: "fa fa-upload", input_html: { hidden: true } %>
        <%= form.submit "Update", class: "btn btn-primary" %>
    <% end %>
<% end %>