我想通过jQuery Ajax提交上传多个文件。如何防止浏览器在Ajax提交后重定向到FORM操作?
一切工作正常,除了提交后,浏览器转到表单中指定的网址,即使我添加一个Return False
。
如果我使用$("#upload").serialize(),
而不是FormData
,它不会被重新定向!这里是我的CoffeeScript代码:
# Initialization code
$("#upload").submit ->
ajaxUpload()
return false
# Handler
ajaxUpload = ->
fd = new FormData()
files = $("#uploadFiles")[0].files
$.each files, (i, file) ->
fd.append("file" + i, file)
$.ajax
type: $("#upload").attr("method"),
url: $("#upload").attr("action"),
data: fd,
# data: $("#upload").serialize(),
success: (data, text, xhr) ->
debug "Success: " + JSON.stringify(data)
loadEventAgain()
error: (xhr, status) ->
debug "Error: " + JSON.stringify(xhr)
alert "done"
return false
你有没有试过'e.preventDeafult();'? – 2012-07-23 11:43:37
我知道JS但不是CoffeeScript,所以也许这是一个愚蠢的问题,但是那个代码的最后一行返回false?这是全部在事件处理程序或什么? – nnnnnn 2012-07-23 11:44:52
是页面上唯一的东西,因为Ajax基本上会重新加载页面的一部分。对于你的要求,我有点困惑。 – 2012-07-23 11:45:12