在jQuery中,当一个函数成功获得构建时。现在,当我提交此表单时,它会提供除inputType='file'
之外的所有数据。我无法理解为什么会发生这种情况
这是表单创建时的jQuery代码
content += '<form method="POST" action="'+formURL+'" id="data" enctype="multipart/form-data">'+
'<input type="text" name="album_id" value="'+id+'">'+
'<input type="text" name="user_id" value="'+user_id+'">'+
'<input type="file" name="image" id="image_upload">'+
'<input type="submit" value="Submit">'+
'</form>';
此处表单正在提交
$("form#data").submit(function() {
var formData = new FormData($(this)[0]);
$.post($(this).attr("action"), formData, function(data) {
console.log(data);
});
return false;
});
我将这个表单数据发送到cakephp中的控制器中。
在控制器中,我只获得仅具有text
类型的输入字段数据。但我也需要file
类型。
答案 0 :(得分:1)
请使用jquery.form.js进行文件上传。
http://malsup.com/jquery/form/
<form method="POST" action="'+formURL+'" id="data" enctype="multipart/form-data" onsubmit="return submit_form();" >
function submit_form(){
$('#data').ajaxSubmit({
method:'post',
dataType:'json',
success: function(resp){
}
});
return false;
}
答案 1 :(得分:0)
您可以像这样更改jquery函数
$("form#data").submit(function(){
var formData = new FormData($(this)[0]);
$.ajax({
url: $(this).attr("action"),
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;
});