Javascript 如何使用JS和RubyonRails提交表单
我有一个rails项目,它使用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
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 %>