0

我有功能:

$(function () {
                    $('form').on('submit', function (e) {
                        $.ajax({
                            type: 'POST',
                            url: 'conf/send.php',
                            data: $('form').serialize(),
                            success: function () {
                                var form = document.getElementById("Form");
                                form.submit();
                            }
                        });
                        e.preventDefault();
                    });
               });

在 FF、Chrome、Opera、IE 中运行良好。在 Safari 中不起作用。尝试添加:

async: false,

$.ajaxSetup({
  type: 'POST',
  headers: { "cache-control": "no-cache" }
});

$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
   options.data = jQuery.param($.extend(originalOptions.data||{}, { 
     timeStamp: new Date().getTime()
   }));
});

这样做没有帮助吗?提前致谢

4

2 回答 2

1

form.submit()我认为您在进行时会陷入循环success()

尝试这个

$(function () {
    $('form').on('submit', function (e) {
        $.ajax({
            type: 'POST',
            url: 'conf/send.php',
            data: $('form').serialize(),
        }).done(function(response){ 
            alert(response);
            return true; 
        });
        e.preventDefault();
    });
});

此处示例http://fiddle.jshell.net/UKPq5/

于 2013-09-28T10:12:30.920 回答
1

你确定这段代码:

success: function () {
    var form = document.getElementById("Form");
    form.submit();
}

真的是你想要的吗?你告诉 JavaScript 如果你的表单通过 AJAX 发送,那么它应该发送 id 的表单#Form。也许你应该试试这个:

$(function() {
    var form = $('form');

    form.on('submit', function(e) {
        e.preventDefault();

        $.ajax({
            type: 'POST',
            url: 'conf/send.php',
            data: form.serialize(),
            success: function (response) {
                console.log(response);
                //var form = document.getElementById("Form");
                //form.submit();
            }
        });
    });
});
于 2013-09-28T10:13:31.047 回答