我遇到一个问题,我的php中$ _GET中的某些表单字段没有被选中。
我有一个复选框,当选中时会使用先前输入的数据填充某些表单字段。问题是,当手动输入数据时,它会显示出来,而当它不显示时,它会显示出来。
这是改变值的jQuery。
$("#same_as").change(function() {
var delivery = $("input[name^=delivery_]");
var invoice = $("input[name^=address_]");
if ($(this).prop("checked")) {
for (var i = 0; i < delivery.length; i++) {
// populate the delivery fields with the invoice address values
$(delivery[i]).val($(invoice[i]).val());
}
delivery.prop("disabled", true);
}
else {
delivery.each(function() {
// empty the delivery fields
$(this).val("");
});
delivery.prop("disabled", false);
}
});
这是提交表单的代码:
$("#register_form").submit(function(e) {
e.preventDefault();
$.get($(this).attr("action"), $(this).serialize(), function(data) {
data = $.parseJSON(data.replace("<!DOCTYPE html>", ""));
console.log(data);
});
});
php简单如下:(对其他字段有更多检查)
if (isset($_GET["delivery_line_1"])) echo $_GET["delivery_line_1"];
手动填写字段时,将发送数据。
当复选框功能填充字段时,不会发送数据。奇怪的是,当我console.log()
ajax请求之前的数据时,无论如何都存在。
答案 0 :(得分:2)
您的问题是您正在禁用这些字段。这确实阻止了他们发送数据。
只需隐藏字段或其他内容