JQuery文件上传:在data.submit()上发送两个请求
JQuery File Upload: sending two request on data.submit()
我正在尝试在我的应用程序中使用回形针和jquery-fileupload-rails上传视频
我用曲别针和jquery跟随上传文件上传视频,但是在上传视频的时候,我选择了视频,没有等待提交按钮,所以我跟随了1: jQuery文件上传:是否可以通过提交按钮来触发上传?选择一个视频并在提交按钮上上传,而不是选择文件。
但是有一个问题是我是否把提交按钮放在表单或外部表单。
当我在表单中放置提交按钮时,它会发送两个请求来按提交按钮,一个带视频,另一个不带视频。
如果我把按钮放在表单外,它会在按提交按钮时发送一个请求,但在成功创建/更新后,它仍然在同一个页面上。
所有我想要的是按下提交,只发送一个请求和重定向到索引页成功创建/更新。
在_form.slim= simple_form_for [:admin,add] do |f|
.wizard-content
.row
.col-sm-6
= f.input :video, multiple: false, wrapper: :horizontal_file_input
button#submit_button.btn.btn-primary
| Save
在adds.coffee jQuery ->
$('#add_video').attr('name','add[video]')
$('#add_video').fileupload
$('#submit_button').off('click').on 'click', ->
data.submit()
在控制器中我有
def create
if add.save
redirect_to admin_adds_path
flash[:success]= "Add Created"
else
render :new
end
end
def update
if add.update(add_params)
redirect_to admin_adds_path
flash[:success]= "Add Updated"
else
render :edit
end
end
还有一个_add.slim
= image_tag(@add.uploaded_file(:small), class: 'thumb')
我还按照建议的教程创建了create.js.erb和edit.js.erb(尽管我不了解它的用法)
- if @add.new_record?
| alert('Failed');
- else
| if ($('h1') !== undefined) { $('h1').append("
=j render partial: 'adds/add', locals: { add: @add }
| "); }
这有什么问题?
尝试表单内的按钮并使用event.preventDefault(),因为似乎表单正在执行默认操作,即发送数据并重新加载页面,并调用js.
$('#submit_button').off('click').on 'click', (event) ->
event.preventDefault()
data.submit()
当您将按钮放在表单外时,您可以处理done
事件和重定向。记住这个POST是ajax的,如果你POST一个更改或新元素,你会通过ajax得到响应,而不是通过web浏览器页面。
$('#fileupload').fileupload({
dataType: 'json',
add: function (e, data) {
$("#up_btn").off('click').on('click', function () {
data.submit();
});
done: function (e, data) {
window.location.href = "data.next_url";
}
},
});
也许你需要响应一些json(而不是重定向redirect_to admin_adds_path
)从控制器传递到javascript信息(一些像success
, error
, next_url
, others
)
相关文章:
- davis.js在页面加载/重新加载上生成两个请求
- Node.js&两个请求之间的Express/Can上下文切换可以是同步代码
- 两个Post请求,并且不更改变量
- Ajax向Wicket服务器发送两个请求时出错
- 从Node.JS中的两个网站请求RSS提要
- 在两个页面上发送 AJAX 请求
- Dojo 两个 XHR 请求和回调函数仅在两者完成时触发
- 两个 JSON 请求的列表
- 这是如何处理基于从 url 获取值的两个 ajax 请求吗?
- 如何在一个按钮单击上发出两个依赖的 AJAX 请求
- 使用 jquery ajax 请求和日期格式错误解析两个参数
- 如何使用 Restangular 检查两个同时请求的完成情况
- 如何改进/缩短这两个类似的 ajax 请求
- 节点JS,从两个链接同步发出HTTPS请求
- AngularJS:使用来自两个HTTP请求的变量
- 同时发出两个Ajax请求
- AJAX - 同时运行两个请求,但其中一个以一定的间隔重复运行
- ajax post请求调用时,为什么函数计算两个元素之间的距离不起作用
- 在两个独立的成功http请求后激发回调
- 两个ajax请求url(成功/失败)