我正在使用 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
。除了使用隐藏输入或者我做的事情完全错误之外,还有什么方法可以获取正确的值吗?
最佳答案
好的。我终于解决了这个问题:而不是在设置对象中添加额外的参数:
$uploadButton.fileupload({
url: myUrl,
formData: { additional params },
....
});
应在 add
方法中提交数据之前直接指定它们:
add: function (e, data) {
.....
data.formData = { additional params };
data.submit();
},
关于jquery - 使用 blueimp fileupload 发送附加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26036773/