Я использую плагин blueint jquery.fileupload для загрузки файлов с помощью asp.net
У меня есть ситуация, когда у меня есть страница, позволяющая пользователю выбрать категорию (выпадающий список ), заголовок (для загруженного файла — TextBox) и ввод файла (обрабатывается плагином).
Плагин: https://github.com/ieb/jQueryFileUpload.Net
javascript/jquery:
$('#fileup').fileupload({
replaceFileInput: false,
formData: function (form) {
return [{ name: 'dcat', value: $('#ddlCats').val() }, { name: 'title', value: $('#txtTitle').val()}];
},
dataType: 'json',
url: '/_handlers/FileHandler.ashx',
add: function (e, data) {
var valid = true;
var re = /^.+\.((doc)|(xls)|(xlsx)|(docx)|(pdf)|(pts))$/i;
$.each(data.files, function (index, file) {
if (!re.test(file.name)) {
$('#uploaded').html('This file type is not supported');
valid = false;
}
});
if (valid)
data.submit();
},
done: function (e, data) {
$.each(data.result, function (index, file) {
$('#uploaded').html(file);
});
GetFiles($('#ddlCats').val())
},
error: function () {
alert('An error occured while uploading the document.');
}
});
html:
Yeni Belge:
Category:
Document Description:
Select Document:
Моя проблема в том, что файл загружается (через обработчик http) сразу после того, как я выбираю файл. Я могу справиться с этим, чтобы отправить другие данные формы вместе с ним, однако я хочу запустить это событие на кнопке отправки, так как мне нужно выполнить некоторую проверку. Кроме того, пользователь может захотеть сначала выбрать файл, а затем заполнить другие части формы, что в данном случае он не может сделать из-за того, что форма отправляется до того, как он сможет это сделать.
Поскольку я не очень хороший программист javascript, я понятия не имею, доступна ли уже эта функциональность (вероятно, есть) в файлах .js, доступных с подключаемым модулем. Есть идеи, что мне нужно изменить или сделать?
12
задан Yarin 17 July 2013 в 16:52
поделиться