因此,您所做的就是有效地对数据进行双重序列化。
一旦来到这里:
var form_data = $("#form").serialize();
然后又在这里:
$.ajax({
type: "POST",
url: "action.php",
data: {
form_data: form_data,
FrmSubmit: 'SubmitButton'
},
cache: true,
success: function (html) {
$("#rsvp_sub").html(html);
alert("form success");
}
});
当你将一个对象传递给$.ajax
为了data
参数,它序列化并编码 it.
所以...不要这样做。一种选择是这样做:
var form_data = $("#form").serialize() + "&FrmSubmit=SubmitButton";
$.ajax({
type: "POST",
url: "action.php",
data: form_data,
cache: true,
success: function (html) {
$("#rsvp_sub").html(html);
alert("form success");
}
});
请注意,如果FrmSubmit
or SubmitButton
包含除 A-Z、a-z、0-9 之外的任何内容(我很保守),或者如果你不控制它们包含的内容,你会想使用encodeURIComponent
:
var form_data = $("#form").serialize() + "&" +
encodeURIComponent('FrmSubmit') + "=" +
encodeURIComponent('SubmitButton');