1

フォームを送信する前に、Ajax を使用してコントローラー (InsertLead) にデータを送信してから、フォーム ('SendForm()') を投稿していますが、「フォーム データ」がありません。

私はクロムでテストしています:開発者ツール

ここに私のコードがあります:

  $(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" />
4

2 に答える 2

3

間違ったイベントを防いでいます。使用する

$('#frm1').submit(function (e) {
    e.preventDefault();
// (...)
于 2013-10-09T14:48:57.373 に答える