【问题标题】:Jquery Ajax post of a form doesn't submit field changes, but only original field values表单的Jquery Ajax帖子不提交字段更改,而仅提交原始字段值
【发布时间】:2014-03-11 02:40:15
【问题描述】:

我正在使用 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>   

【问题讨论】:

  • 有人愿意评论这里的众多反对票吗?如果你要投反对票,至少给我一些指示,说明原因。

标签: c# javascript jquery ajax http-post


【解决方案1】:

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);
        }
    });
}

【讨论】:

  • 第四次编辑后,您终于复制粘贴了我的整个答案:)
  • @fejesjoco,没有伙伴。 事实并非如此。我正在格式化答案。是的,我提供了解决方案然后推理。即使在这个 cmets 中,它也是我的第四次编辑
  • 你说的都是对的,而且都得到了代表,没什么好争论的。这两个答案似乎都是单独得出的,由于这个问题只有一个答案,因此预计两者都会给出相同的答案。
  • 我知道这样的事情很愚蠢。谢谢@fejesjoco 和@Satpal!一旦允许我就会接受答案。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多