0

私はフォーム送信のためにJSコードに従っています。関数にと値をsubmitForm渡すだけで複数のフォームで機能するように、フォーム送信を という関数に保持しました。selectoractionsubmitForm

function submitForm(selector, action, onComplete) {
  var response
  $(selector).submit(function (e) {
    e.preventDefault();
    var data = $(this).serializeArray();
    $.ajax({
      type: 'POST',
      url: action,
      data: data,
      dataType: 'json',
      a
      sync: false,
      success: function (data) {
        response = data;
      }
    });
  });
  return response;
}
submitForm(".lform", "user.php", function (response) { // Callback function
  // Doing necessary stuff
});

上記のコードでは、コールバック関数が実行されていません。その理由は何ですか? コールバック関数内には、次のコードがあります。

location.reload(); // To refresh the total DOM,
$(".c_form").dialog({
  closeOnEscape: false,
  title: title,
  modal: true,
  close: function () {
    $(this).dialog('destroy').hide();
  }
});

ページのリロード完了後にダイアログボックスを表示したいのですが、可能ですか?

4

2 に答える 2

2

戻ることはできませんresponse。その時は、まだundefinedAJAXが載っdataていないからです。

コールバック関数は 3 番目の引数onCompleteです。AJAX が成功したら、それを実行して渡しますdata

success: function (data) {
  onComplete(data);
}
于 2013-04-13T06:26:07.030 に答える