表单的 Jquery Ajax 帖子不提交字段更改,而只提交原始字段值



我正在使用Jquery 1.9.1,ASP.NET MVC 3,.Net 4.0框架,C#和Targeting IE 8作为浏览器客户端(不幸的是,此要求没有弹性)。

有一个视图,我正在尝试实现自动保存功能,通过经常在幕后进行的 ajax 调用来保存数据。Jquery 帖子有效,数据绑定到我的模型;但是,发送的数据是页面首次加载时存在的表单值,不包括页面上所做的任何更改。我敢肯定这是我在某处缺乏理解,但我不确定故障的确切位置。我执行这篇文章的代码如下。我已经验证了正在提交的数据,这是通过Fiddler2的HTTP POST。

思潮?

<script type="text/javascript">
    var postActionUrl = '@Url.Action("AjaxSave", "AjaxPost")';
    var formData = $('form').serialize();
    function AutoSave() {
        $.ajax({
            url: postActionUrl,
            type: 'POST',
            data: formData,
            datatype: 'html',
            success: function (result) {
                var txt = "result: " + result.success + " Message: " + result.message;
                alert(txt);
            }
        });
    }
    $(document).ready(function () {
        var autoSaveFrequency = "@RulesService.GetAutoSaveIntervalInMiliseconds()";
        alert("Will be saving every " + (autoSaveFrequency) + " seconds.");
        setInterval(AutoSave, autoSaveFrequency);
    });
</script>   

AutoSave方法的范围内移动$('form').serialize()。当您序列化表单一次并重复使用它时存在问题

function AutoSave() {
    var formData = $('form').serialize();
    $.ajax({
        url: postActionUrl,
        type: 'POST',
        data: formData,
        datatype: 'html',
        success: function (result) {
            var txt = "result: " + result.success + " Message: " + result.message;
            alert(txt);
        }
    });
}

这是因为您只序列化表单数据一次。在自动保存功能内移动该行。

相关内容

  • 没有找到相关文章

最新更新