1

那里有一些类似的问题要挖掘,但我的问题不同,因为我没有在提交中使用 validate 函数(实际上根本没有),而且我也没有使用 ajax。

我有一个表格,提交看起来像这样:

(function ($, settings, undefined) {
    var hasSubmitted = false;
    $(function () {
       $("form").submit(function () {
            var theForm = $(this);
            var cancelClicked = $("input[type=submit][clicked=true].cancel").length > 0;
            if (cancelClicked || (theForm.valid() && !myOtherRequirements())) {
                hasSubmitted = true;
                return true;
            } else {
                return false;
            }
        });
      }
})(jQuery, settings);

clicked true 是在点击事件上添加的属性:

 $("form input[type=submit]").click(function () {
        $("input[type=submit]", $(this).parents("form")).removeAttr("clicked");
        $(this).attr("clicked", "true");
    });

正如您所猜到的,我必须按两次提交按钮才能提交表单,但我不明白为什么。第一次它完全没有做任何事情。调试器上没有警报命中或网络活动。事件.submit.click根本不会触发。

具有这种结构的其他形式似乎没有这个问题。

有任何想法吗?


更新

发现了问题。在后台的同一页面中执行了另一个不相关的 ajax 调用,除非其他 ajax 调用完成,否则提交将不起作用。说得通!

4

0 回答 0