如何使用 jquery 文件上传发送额外的表单字段

How to send additional form fields using jquery file upload

我正在使用 jquery 文件上传将文件上传到服务器端操作。但是,我还想发送其他表单字段作为表单提交的一部分。此外,我希望表单提交仅在单击 "submit" 按钮时发生。

使用 jquery 文件上传是否可行?

我创建了一个 jsbin:http://jsbin.com/mozujilede/1/edit?html,js,output

期望的行为:

这就是我现在正在做的事情:

var maxFiles = 10;
$('#fileupload').fileupload({
    singleFileUploads: false,
    url: '/uploadUrl'
}).bind('fileuploadadd', function (e, data) {
        var input = $('#input');
        data.formData = {example: input.val()};
        var fileCount = data.files.length;
        if (fileCount > maxFiles) {
            alert("The max number of files is "+maxFiles);
            return false; 
        }
    });

试试这个

var byButton = false;
$("#sub-but").on("click",function(){
  var inp = $("#files")[0];
  if(inp.files.length > 10){
    alert("Max number of files");
    return false;
  }
  byButton = true;
  $("#myForm").submit();
});
function validate(){
  if(!byButton)
     return false;
  byButton = false;
  return true;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm" onsubmit="return validate();">
  <input type="text" placeholder="some extra items"/>
  <input type="file" id="files" multiple="multiple"/>
  <input type="button" value="Submit" id="sub-but"/>
</form>