代码之家  ›  专栏  ›  技术社区  ›  xanadont

在submit按钮上附加click事件(使用jQuery)将终止提交功能

  •  1
  • xanadont  · 技术社区  · 14 年前

    添加 使用jQuery提交事件?我的测试显示$(“#form”).submit(…) 提交事件,从而杀死MVC的ajaxy的东西。

    $("#submitButton").click(function ()
    {
        var $button = $(this);
        $button.parent().submit();
        $button.attr("disabled", "disabled");
    });
    

    有人知道附近的工作吗?

    所以,这实际上可能是MVC中的一个bug。最初我有:

    <% using (Ajax.BeginForm("CreateAsync", "Account", new AjaxOptions
        {
            HttpMethod = "POST",
            OnComplete = "create_Complete",
            OnBegin = "create_Begin"
        },
        new { id = "ajaxForm" }))
    { %>
    <!-- form stuff -->
    <% } %>
    
    $("#ajaxForm").submit(function() {
        $(":submit", this).attr("disabled", "disabled");
    });
    

    <% using (Ajax.BeginForm("CreateAsync", "Account", new AjaxOptions
        {
            HttpMethod = "POST",
            OnComplete = "create_Complete",
            OnBegin = "create_Begin"
        }))
    { %>
    <!-- form stuff -->
    <% } %>
    
    $("form").submit(function() {
        $(":submit", this).attr("disabled", "disabled");
    });
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Chris Baxter    14 年前

    基本上是这样的

    $("form").submit(function() {
        $(this).submit(function() { return false; });
        $(":submit", this).addClass("PseudoDisabled");
    });
    

    附在文件上。准备工作在我们的项目很好。因为您实际上无法禁用提交按钮,否则回发将被忽略。我们基本上创建了一个disabled样式,它应用于submit,提供disabled的外观,并通过附加一个新的submit事件处理程序来防止多次提交。

        2
  •  0
  •   xanadont    14 年前

    原来是个虫子。有关答案,请参见编辑后的问题。