使用jquery更新的表单值不会提交给php

时间:2014-10-16 10:44:16

标签: php jquery html ajax

我遇到一个问题,我的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请求之前的数据时,无论如何都存在。

1 个答案:

答案 0 :(得分:2)

您的问题是您正在禁用这些字段。这确实阻止了他们发送数据。

只需隐藏字段或其他内容