我正在使用blueimp file-upload的功能将其他参数发送回add
内设置的服务器:
var simpleImport = false, replaceImport = false, mergeImport = false;
$uploadButton.fileupload({
url: myURL,
formData: { simple : simpleImport, replace : replaceImport, merge : mergeImport },
add: function (e, data) {
var valid = true;
// validation logic
if (valid) {
if (condition №1) simpleImport = true;
else if (condition №2) replaceImport = true;
else if (condition №3) mergeImport = true;
data.submit();
}
},
done: function (e, data) {
if (data.result) {
oTable.ajax.reload();
}
},
fail: function (e, data) {
alert("shit happens");
}
});
在服务器上我以这种方式阅读它们:
var merge = Convert.ToBoolean(Context.HttpContext.Request.Form["merge"]);
var simple = Convert.ToBoolean(Context.HttpContext.Request.Form["simple"]);
var replace = Convert.ToBoolean(Context.HttpContext.Request.Form["replace"]);
但是尽管在add
中更改了它的值,我仍然在处理程序中将它们全部等于false
。有没有什么方法可以获得正确的值,除非使用隐藏的输入或我做错了什么?
答案 0 :(得分:4)
确定。我终于解决了这个问题:而不是在设置对象中添加其他参数:
$uploadButton.fileupload({
url: myUrl,
formData: { additional params },
....
});
在使用add
方法提交数据之前,应直接对其进行说明:
add: function (e, data) {
.....
data.formData = { additional params };
data.submit();
},