【发布时间】:2014-01-28 08:49:19
【问题描述】:
<script type='text/javascript'>
$(document).ready(function(){
$('#send_message').click(function(e){
var email = $('#email').val();
if(fname.length == 0){
var error = true;
$('#fname_error').fadeIn(500);
}else{
$('#fname_error').fadeOut(500);
}
if(error == false){
$('#send_message').attr({'disabled' : 'true', 'value' : 'Sending...' });
$.post("sub_register.php", $("#contact_form").serialize(),function(result){
if(result == 'sent'){
$('#cf_submit_p').remove();
$('#mail_success').fadeIn(500);
}else{
//show the mail failed div
$('#mail_fail').fadeIn(500);
//reenable the submit button by removing attribute disabled and change the text back to Send The Message
$('#send_message').removeAttr('disabled').attr('value', 'Send The Message');
}
});
}
});
});
这是我的表单的标题。 我正在以这种形式使用文件上传。除上传的文件名外,所有其他表单元素数据都将进入我的提交页面。当我从我的页面中删除这个脚本并使用简单的表单提交时,它会发送上传的文件名。
如何在这个 ajax 标头中发送“multipart/form-data”。
提前致谢
【问题讨论】:
-
您必须为表单设置适当的属性:
-
@hindmost — 为什么? HTTP 请求是使用 JavaScript 构建的,而不是表单。
-
jQuery
post和serialize不支持文件上传。您需要直接访问 XMLHttpRequest 和 Files API 或查找其他库。
标签: php ajax forms header form-submit