2

当我的条件为真时,我需要重新打开默认设置。因为我在提交按钮的 onclick 中使用了该条件,所以我不能将 preventDefault 放入其中,因为它会在我单击它后阻止它并且没有用处。

因此,当条件为真时,我需要它来恢复表单操作。同样在 onclick 中,我需要它第一次做出反应,现在每次点击它时只有一次 +1。

所以在这种情况下,它必须在第一次点击时提示 Success,然后继续到表单页面。

HTML:

<form id="formName">
    <input type="submit" id="submitBtn" value="Submit" />
</form>

JS:

var a = 1;  
$("#formName").submit(function(e){
    e.preventDefault();
        $(document).on("click", "#submitBtn", function () {
                if(a != 1){
                    alert("Fail!");
                }
                else{
                    alert("Success");
                    return true;
                }
        });
    });

演示:http: //jsfiddle.net/Z9Zwz/

4

2 回答 2

0

阻止默认提交比 imo 更难。我在跨浏览器/平台时遇到了几个问题。

我最终决定删除提交按钮并使用您似乎正在使用的 JQuery ajax 提交表单。在对表单进行硬编码时,onsubmit 会返回 false。这应该使它更容易。

于 2013-05-27T20:07:42.113 回答
0

问题是浏览器只能在用户单击提交按钮时提交表单。您不能从 JavaScript 端sensu stricto提交表单。不过,您可以通过 AJAX 进行模拟(我强烈建议这样做)。

如果是其他事件,我建议用div, 绑定到clickon包装一个按钮,div然后稍后手动触发该事件。

PS 不要在事件处理程序中添加事件处理程序。您正在堆叠事件处理程序。

于 2013-05-27T20:17:46.630 回答