rails上传文件时,实现form表单自动提交
2013-03-30 15:34
836 查看
rails项目中有一个上传图片的功能要实现,遇到了要点击上传图片和提交表单两个按钮,这样影响用户体验,所以就想找一种方式当点击上传图片按钮以后会自动提交form表单,而不用在点击表单的提交按钮了。
<%= form_for @photo,:url => { :action => "create", :controller=>"photos" },:method => :post, :html => {:multipart => true} do |f| %>
<%= f.error_messages %>
<%= f.hidden_field :user_id %>
<%= f.label :remote_photo_name %>
<%= f.text_field :remote_photo_name %>
<%=image_tag(@user.photos.first.image_url(:thumb), alt: @user.photos.first.image,:size => "100x100" ) %><br/>
<%= f.file_field :image,:onchange => 'this.form.submit()' %>
<%= f.submit %>
<% end %>
重点在于第七行onchange的调用,但点击了上传图片以后会出发onchange ,这个表单会自动提交给create的action
另外还可以实现为了避免重复提交表单,rails中的submit_tag很好的选项disable_with
submit_tag "提交", :disable_with => "提交中..."
例如 <%= f.submit:disable_with => "提交中..."%>当用户按下"提交"按钮将会禁止再次点击提交,按钮就会变成"提交中...",
<%= form_for @photo,:url => { :action => "create", :controller=>"photos" },:method => :post, :html => {:multipart => true} do |f| %>
<%= f.error_messages %>
<%= f.hidden_field :user_id %>
<%= f.label :remote_photo_name %>
<%= f.text_field :remote_photo_name %>
<%=image_tag(@user.photos.first.image_url(:thumb), alt: @user.photos.first.image,:size => "100x100" ) %><br/>
<%= f.file_field :image,:onchange => 'this.form.submit()' %>
<%= f.submit %>
<% end %>
重点在于第七行onchange的调用,但点击了上传图片以后会出发onchange ,这个表单会自动提交给create的action
另外还可以实现为了避免重复提交表单,rails中的submit_tag很好的选项disable_with
submit_tag "提交", :disable_with => "提交中..."
例如 <%= f.submit:disable_with => "提交中..."%>当用户按下"提交"按钮将会禁止再次点击提交,按钮就会变成"提交中...",
相关文章推荐
- 【jQuery】Jquery.form.js实现表单异步提交以及文件上传(带进度条)
- 如何利用Axis2+Spring实现文件上传(支持jsp页面的form表单提交),Android客户端调用
- ANDROID使用MULTIPARTENTITYBUILDER实现类似FORM表单提交方式的文件上传
- 用jquery.form.js 实现ajax提交含有上传文件和普通字段的表单
- 使用jQuery.form插件实现表单异步提交+上传文件
- Android使用MultipartEntityBuilder实现类似form表单提交方式的文件上传
- iframe标签实现form表单提交(如文件上传下载)不刷新
- 实现向服务器上传图片文件、实现不同方式的form表单提交方式
- HttpClient 4.3.6 使用MultipartEntityBuilder实现类似form表单提交方式的文件上传
- springmvc-普通form表单提交 4000 方式实现文件上传
- 【文件上传】使用jquery.form.js来实现表单提交
- 使用jQuery.form插件实现表单异步提交+上传文件
- 在tp3.2.3中使用 FormData 对象实现表单的文件上传功能遇到的一个问题及解决方法
- 实现文件上传,以及表单提交成功的回调函数
- JavaScript实现form表单的多文件上传
- Form表单多文件改名ajax提交上传及java后台处理
- 使用ajax提交form表单,包括ajax文件上传
- form表单提交,上传文件以及提交前验证的问题。
- Ajax提交form表单,Ajax文件上传
- jquery的异步提交表单(异步上传文件)及jquery.form.js上传文件注意事项