第4行给出了表单元素,但是第5行没有给出任何内容。我该怎么办?
$('#btnSave').click(function () {
var form = $("#myForm");
var formData = new FormData($(form)[0]);
console.log(form);//this gives form elements
console.log(formData);// but this gives nothing
var url = '<?php echo base_url() ?>' + 'product/add';
$.ajax({
type : 'post',
url : url,
processData: false,
contentType: false,
data: formData,
success: function (response) {
if (response){
$('#myModal').modal('hide');
$('#myForm')[0].reset();
$('.alert-success').html('Record Added').fadeIn().delay(4000).fadeOut('slow');
} else {
alert('Error');
}
},
error: function () {
alert('could not add data');
}
});
});
});
// formData对象不附加任何内容。请问任何解决方案?
答案 0 :(得分:0)
尝试下面的代码并在ajax代码中进行一些更改。在代码中添加以下参数。
processData:false,
contentType:false,
在ajax开始之前添加var formData = new FormData($("#formID")[0]);
行。
或检查以下代码并根据您的代码进行更改。
$('#btnSave').click(function (event) {
var form = $("#myForm");
var formData = new FormData($(form)[0]);;
var url = '<?php echo base_url() ?>' + 'product/add';
if($('#picture').val()==''){
alert("please select the file");
} else{
$.ajax({
type: 'ajax',
data: formData,
url: url,
method: 'POST',
processData: false,
contentType: false,
success: function (response) {
if (response) {
$('#myModal').modal('hide');
$('#myForm')[0].reset();
$('.alert-success').html('Record Added').fadeIn().delay(4000).fadeOut('slow');
setTimeout(function () {// wait for 5 secs(2)
location.reload(); // then reload the page.(3)
}, 1);
} else {
alert('Error');
}
},
error: function () {
alert('could not add data');
}
});
}
});
});
答案 1 :(得分:0)
在你的代码中有多个错误,这里我有我在ajax中使用的代码
var form=document.getElementById('form_id');
var fdata=new FormData(form);
$.ajax({
type: "POST",
url: 'Your_url',
dataType: 'json',
data:fdata,
processData: false,
contentType: false,
beforeSend: function () {
},
success: function (data) {
//Do something on response
},
complete: function () {
}
});
这里你的错误是你使用type: "ajax"
这是不正确的写法,因为你必须指定数据传递方法POST或GET,
您的代码中的第二个错误是,您在代码的第3行上做了两个分号(;),这就是javascript无法正常工作的原因。
我希望这对你有用。