Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在preventDefault()之后发送表单,缺少“表单数据”_Javascript_Jquery_Asp.net Mvc_Forms - Fatal编程技术网

Javascript 在preventDefault()之后发送表单,缺少“表单数据”

Javascript 在preventDefault()之后发送表单,缺少“表单数据”,javascript,jquery,asp.net-mvc,forms,Javascript,Jquery,Asp.net Mvc,Forms,在提交表单之前,我使用Ajax将数据发送到控制器InsertLead,然后我发布表单“SendForm”,但“表单数据”丢失 我正在用chrome:developers工具进行测试 这是我的密码: $(document).ready(function () { var request; $('#frm1').submit(function (e) { event.preventDefault(); var referredUse

在提交表单之前,我使用Ajax将数据发送到控制器InsertLead,然后我发布表单“SendForm”,但“表单数据”丢失

我正在用chrome:developers工具进行测试

这是我的密码:

  $(document).ready(function () {
      var request;
      $('#frm1').submit(function (e) {
          event.preventDefault();
          var referredUser = new ReferredUser();
          referredUser.UserName = $("#fullname1").val();
          referredUser.UserPhone = $("#mobilephone1").val();
          referredUser.UserEmail = $("#email1").val();           
          referredUser.Country = $("#country1").val();
          referredUser.ReferrerEmail = '@Model.ReferrerEmail';

          if (referredUser.UserEmail.value == "") { return false; }
          else {
              $('#overlay').show()
              if (request) {
                  request.abort();
              }

              // setup some local variables
              var $form = $(this);

              // select and cache all the fields
              var $inputs = $form.find("input, select, button, textarea");

              // serialize the data in the form
              var serializedData = JSON.stringify(referredUser);

              // disable the inputs for the duration of the ajax request
              $inputs.prop("disabled", true);

              // fire off the request to the form
              request = $.ajax({
                  url: "/Forms/InsertLead",
                  type: "post",
                  data: serializedData,
                  contentType: 'application/json'
              });

              request.done(function (response, textStatus, jqXHR) {
                  $('#overlay').hide()                   
              });

              request.always(function () {
                  SendForm();
                  // re-enable the inputs
                  $inputs.prop("disabled", false);
              });
          }
      });
  });

  function SendForm() {
      var serial = '@Model.SerialId';

      if (serial.val == "") {
          serial = '-1';
      }

      var formURL = '@regFormURL';

      $('#frm1').attr('action', formURL + '?SerialId=' + serial);
      document.regForm1.submit();
  }    
表格:

<form name="regForm1" method="post" id="frm1" action="-1">
    <input type="text" name="RegistrationModel.FullName" id="fullname1" />
    <input type="text" name="RegistrationModel.Email" id="email1" />

你在阻止错误的事件。使用

$('#frm1').submit(function (e) {
    e.preventDefault();
// (...)

你在阻止错误的事件。使用

$('#frm1').submit(function (e) {
    e.preventDefault();
// (...)

我猜禁用的输入将不会被发布

禁用的控件无法成功

你应该让它们成为只读的

只读元素可能会成功


或者在调用SendForm之前重新启用它们,我想禁用的输入将不会被发布

禁用的控件无法成功

你应该让它们成为只读的

只读元素可能会成功


或者在调用SendForm之前重新启用它们

Btw,$'frm1'。submitfunction e{您应该使用event而不是e作为函数参数。您如何查找表单数据?它不会在POST VAR中。为什么使用document.regForm1.submit;而不是$frm1.submit?@KamilT,因为如果他使用$frm1.submit,它将进入无限循环。顺便说一句,$'frm1.submit函数e{您应该使用event而不是e作为函数参数。您如何查找表单数据?它不会出现在POST vars中。为什么使用document.regForm1.submit;而不是$frm1.submit?@KamilT,因为如果他使用$frm1.submit,它将进入无限循环。因为他在chrome中测试,使用event应该具有相同的效果。但是,是的his是跨浏览器支持的问题之一,但不是此问题引发的问题的原因。已修复为e.preventDefault;但仍然没有表单数据。由于他在chrome中进行测试,使用事件应该具有相同的效果。但这是跨浏览器支持的问题之一,但不是此问题引发的原因问题。已修复为e.preventDefault;但仍然没有表单数据。我怎么会错过它?!非常感谢!我怎么会错过它?!非常感谢!