Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从onSubmit事件处理程序中添加或减去函数?_Javascript_Javascript Events_Onsubmit - Fatal编程技术网

Javascript 从onSubmit事件处理程序中添加或减去函数?

Javascript 从onSubmit事件处理程序中添加或减去函数?,javascript,javascript-events,onsubmit,Javascript,Javascript Events,Onsubmit,我有以下代码: function showAddrBox() { var prompt = document.getElementById('addr_prompt'); prompt.style.display = 'block'; document.generic_form.address.style.display = 'block'; document.generic_form.onsubmit = validateAddrForm; } functio

我有以下代码:

function showAddrBox() {
    var prompt = document.getElementById('addr_prompt');
    prompt.style.display = 'block';
    document.generic_form.address.style.display = 'block';
    document.generic_form.onsubmit = validateAddrForm;
}

function hideAddrBox() {
    var prompt = document.getElementById('addr_prompt');
    prompt.style.display = 'none';
    document.generic_form.address.style.display = 'none';
    document.generic_form.onsubmit = null;
}
问题是,有时我想保留附加到onSubmit的附加函数。我希望能够从onSubmit事件中添加和删除单个函数,而不仅仅是使用“onSubmit=”设置它们。换句话说,我需要一种方法来完成这样的事情:

document.form.onsubmit += function;
document.form.onsubmit -= function;

有什么想法吗?

我要做的是在表单上有一个onSubmit函数,它协调了其余的函数,并对何时做什么执行逻辑。在函数执行结束时,如果要继续提交,可以返回true;如果不想继续提交,可以返回false。

使用
元素。addEventListener(“eventName”,callbackFunction,false)
元素。removeEventListener(“eventName”,callbackFunction)

其中eventName是不带“on”的处理程序的名称。所以onsubmit变成submit

有关这两个功能的文档,请参阅:

怪癖模式具有

简而言之,您可以使用
addEventListener
attachEvent
在旧版本的IE中)绑定多个事件

要删除它们,可以分别使用
removeEventListener
detachEvent


<>很快,你会因为重复输入<代码> AdvestTristNo./Cuff>和<代码>附件事件而恼火,你可能会考虑制作一些通用代码来绑定事件。幸运的是,其他程序员也有同样的想法,并且有许多库可以优雅地处理事件管理。倾向于选择库,因为绑定事件非常简单:

$('#formid').submit(somefunc);
通用事件绑定方法是:

$('#formid').on('submit', somefunc);
要解除绑定,可以使用:

$('#formid').off('submit', somefunc);

尽管所有这些都在中有很好的说明。

但是对于下面这样的表单,您可以提到两个或多个函数


根据我在Internet上其他地方读到的内容,这是错误的。本例中的表单用法在哪里?onsubmit的行为与任何元素事件处理程序属性都没有区别,onclick比设置表单更容易测试。此处不需要比较,请尝试使用submit,尝试使用w3schools链接,因为我已经尝试过了。哦。这些函数需要实际执行。在任何情况下,这仍然不能回答如何添加和删除侦听器的问题。工作起来很有魅力。非常感谢。
$('#formid').off('submit', somefunc);