Jquery文件上传发送调用ajax,不带文件
一开始我知道这是没有道理的,但是,我得到了这个场景,我需要一点帮助,以找出最好的。让我们来解释一下: 注册一个用户后,我有一个页面,新用户用他的信息(普通输入文件)填写表单,然后,这个表单甚至可以(不是强制性的)上传配置文件图像(使用ajax,在本例中使用JqueryFileUpload插件)。问题是,如果用户不想上传图像,JqueryFileUplaod不会发送请求,因为它没有文件 我想检查是否有任何文件,如果没有,用普通的ajax请求发送请求。如果这是更好的方法,如何检查其中是否有任何文件?检查输入文件的值无效<代码>$(“#文件上传”).val() 这是我提交请求的代码: HTMLJquery文件上传发送调用ajax,不带文件,jquery,jquery-file-upload,Jquery,Jquery File Upload,一开始我知道这是没有道理的,但是,我得到了这个场景,我需要一点帮助,以找出最好的。让我们来解释一下: 注册一个用户后,我有一个页面,新用户用他的信息(普通输入文件)填写表单,然后,这个表单甚至可以(不是强制性的)上传配置文件图像(使用ajax,在本例中使用JqueryFileUpload插件)。问题是,如果用户不想上传图像,JqueryFileUplaod不会发送请求,因为它没有文件 我想检查是否有任何文件,如果没有,用普通的ajax请求发送请求。如果这是更好的方法,如何检查其中是否有任何文件?
<!-- others fields -->
<div id="file-uploader" class="pull-left">
<button class="btn btn-primary btn-def">Choose File</button>
<input id="fileupload" type="file" name="files" data-url="/profile/activate_profile">
</div>
您可能应该使用附加到表单而不是文件输入的插件,并且
$(“#fileupload”).val()
没有为您提供所选文件的名称?没有extacly输入文件没有为我提供所选文件的任何名称。但是有办法改变插件吗?你可以试试$('#fileupload')[0]。files.length
,但这在旧IE中不起作用。嗯,是的,我一直与这个答案保持联系,但我更喜欢与旧IE兼容。谢谢你的帮助
// need to check if there is any image to upload if not
// normal call ajax, if yes go next
$('#fileupload').fileupload({
dataType: 'json',
beforeSend: function(request) {
return request.setRequestHeader("X-CSRF-Token", $("meta[name='_token']").attr('content'));
},
submit: function(e,data)
{
// add form vlues
data.formData = {
'sport' : $('input[name="sport"]:checked').val(),
'city' : $('#city').val(),
'country' : $('#form_location').val(),
'_token' : $('meta[name="_token"]').attr('content')
};
},
add: function (e, data) {
data.context = $('[data-go="finish"]')
.click(function () {
$(this).attr('disabled',true);
data.submit();
});
},
done: function (e, data) {
// do my stuff
}
});