如何防止JS提交程序化表单?

时间:2011-03-21 04:40:55

标签: javascript javascript-events

我有一个调用form.submit()的外部库。无论我做什么,当它被直接调用时,我似乎无法捕捉到这个事件。

示例:http://jsfiddle.net/cwolves/yXsWc/

2 个答案:

答案 0 :(得分:4)

您是否尝试拦截submit()来电,而不是拦截事件?您可以执行一些操作,例如使用您选择的一个替换默认submit()函数,只有在设置了某个标志时才提交。例如:

var formElem = document.getElementById("myForm");
formElem.oldSubmit = formElem.submit;
formElem.submit = function(myFlag) {
    if (myFlag) {
        document.getElementById("myForm").oldSubmit();
    }
};

答案 1 :(得分:0)

这可能有点黑客攻击,但您可以从该特定元素解除绑定click事件,然后重新绑定它以按您希望的方式工作。

$('button').unbind('click').click(form.onsubmit);

jsFiddle