【问题标题】:How can I stop a form from processing/submitting that is using jquery AJAX submission?如何停止处理/提交使用 jquery AJAX 提交的表单?
【发布时间】:2010-12-11 18:44:05
【问题描述】:

我有一个带有两个按钮的表单,一个提交按钮和一个取消/关闭按钮。当用户单击提交时,输入的数据将使用http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/ 进行验证。如果一切都验证通过,则使用 jQuery/AJAX 提交表单。这一切都很好,花花公子。不过,我遇到了取消按钮的问题。我希望取消按钮需要确认。如果用户选择继续,他们将被带到我选择的页面。如果他们决定不想取消,那么他们只是留在页面上。这是最后一个不起作用的部分。

我的表单代码如下所示:

<form name="createPage" id="createPage" method="post" action="pager.php" class="ajax updateForm">
 <input name="whatever" type="text" />
            <button type="submit" id="submitQuickSave" class="submitSave"><span>save</span></button>
            <button type="submit" id="submitCancel" class="submitClose" onclick='confirm_close()'><span>close</span></button>
</form>

我当前的取消脚本如下所示。如果用户确实想取消,我取消绑定表单提交以便不执行验证。然后表单继续提交,并在 action 属性中包含取消作为参数。我处理取消服务器端并将用户引导到新页面。

function confirm_close()
{
var r=confirm("All changes since your last save operation will be discarded.");
if (r==true)
  {
    $(".ajax").unbind("submit");
  }
else
  {

  }
}

我不知道应该在“else”参数中添加什么。发生的情况是,如果用户取消取消(即返回 false),那么表单仍会尝试提交。我不能让它停下来。我在这个网站和其他网站上尝试了几件事,但都没有成功:
event.stopImmediatePropogation
.abort()

有什么想法吗?基本上,我怎样才能让取消/关闭按钮正常工作?

【问题讨论】:

    标签: ajax forms jquery submit


    【解决方案1】:

    考虑separating your JavaScript from your HTML。考虑到这一点,您可以为您尝试拦截的单击事件编写处理程序,如下所示:

    $("button#cancel").click(function($event) {
        var r = confirm("All changes since your last save operation will be discarded.");
        if (r) {
            $(".ajax").unbind("submit");
        }
        else {
            $event.preventDefault();
        }
    });
    

    您必须调整您的 HTML 并为 cancel 按钮添加一个 id 属性:

    &lt;button id="cancel" type="submit" value="cancel"&gt;Cancel&lt;/button&gt;

    此处示例:http://jsfiddle.net/wvFDy/

    希望有帮助!

    【讨论】:

      【解决方案2】:

      我相信你只是

      return false;
      

      让我知道这是否有效。

      【讨论】:

      • 很遗憾没有,ajax 提交仍在处理中。
      猜你喜欢
      • 1970-01-01
      • 2016-10-24
      • 2012-05-27
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多