我正在创建一个json对象,我在其中从表单中提取字段,然后使用jquery Ajax POST来发送数据。但是当我按下提交后看到我的网络选项卡时,我基本上得到了json标题,但是应该从表单中提取的所有值都是空白的,除了我正在硬编码的值。请注意,我的json数据也有一个类型为room的嵌套json。
以下是我的jquery部分: -
var formData={
"checkInDate": $("#checkInDate").val(),
"checkOutDate": $("#checkOutDate").val(),
"roomsWanted":$("#roomsWanted").val(),
"room":{
roomType: $("input[name=roomType]:checked").val(),
roomProperty:"non-smoking"
}
};
$("#checkAvailabilityForm").submit(function(e){
e.preventDefault();
$.ajax({
type: 'post',
url: '',
dataType: 'json',
data: JSON.stringify(formData),
contentType: 'application/json',
success: function(dataRecieved){
var dataRecieved= $.trim(dataRecieved);
if(dataRecieved === ''){
}else{
}
}
});
});
答案 0 :(得分:1)
在formData
函数内移动.submit()
的声明。现在页面加载的方式,然后var formData = ...
立即设置formData的值(到新的空表单的值)。
您的代码应如下所示:
$("#checkAvailabilityForm").submit(function(e){
e.preventDefault();
var formData={
"checkInDate": $("#checkInDate").val(),
"checkOutDate": $("#checkOutDate").val(),
"roomsWanted":$("#roomsWanted").val(),
"room":{
roomType: $("input[name=roomType]:checked").val(),
roomProperty:"non-smoking"
}
};
$.ajax({
type: 'post',
url: '',
dataType: 'json',
data: JSON.stringify(formData),
contentType: 'application/json',
success: function(dataRecieved){
var dataRecieved= $.trim(dataRecieved);
if(dataRecieved === ''){
}else{
}
}
});
});
答案 1 :(得分:0)
你不需要将json字符串化为json,因为它
data: formData