【发布时间】:2017-01-20 16:30:02
【问题描述】:
我正在使用 jQuery File Upload 将图像异步上传到 .NET MVC 控制器。我有以下脚本运行
<script type="text/javascript">
$('#Image').fileupload({
url: "/Home/PostUpdate",
dataType: 'json',
replaceFileInput: false,
dropZone: null,
autoUpload: false,
maxNumberOfFiles: 1,
maxFileSize: 2000000,
add: function (e, data) {
$("form").submit(function (event) {
event.preventDefault();
console.log("posting from jquery file upload");
if ($("#Image")[0].files[0].size > 0 && ($("#PostText").val() === "" || $("#PostText").val() === undefined)) {
// Warning message here
}
else {
console.log("2a");
data.submit();
}
});
},
done: function (e, data) {
// Done code here...
}
});
$("form").submit(function (event) {
event.preventDefault();
if ($("#Image")[0].files[0] == undefined) {
console.log("posting from default ajax");
var url = "/Home/PostUpdate/";
$.ajax({
url: url,
datatype: "json",
data: $(this).serialize(),
cache: false,
type: "POST",
success: function (data) {
// Success code here
},
error: function (response) {
alert("error");
}
});
}
});
</script>
我的 HTML 是标准的<input type="file"/>,所以我可以附加一个文件并上传,我看到该文件通过服务器端代码。我处理并添加到数据库中,没有问题。
我选择的第一张图片,上传一次。如果我然后选择第二张图片并上传,它会执行上传并点击 MVC 控制器两次。如果我选择第三张图片,上传会发生三次?它总是命中相同的data.submit(),即发生在console.log("2a") 的那个,但我不知道为什么它会发生多次?
我想知道 event.preventDefault() 是否导致它触发?但这不解释为什么我会收到三个、四个、五个帖子到控制器操作?
有没有其他人遇到过这种情况,如果有,您采取了哪些措施来解决它?
提前致谢!
【问题讨论】:
-
好像大部分人解绑再重新绑定点击事件。
-
谢谢大家!最后解绑是一种享受!你能写出来让我接受答案吗?
标签: javascript jquery asp.net-mvc file-upload jquery-file-upload