gpt4 book ai didi

使用原型(prototype)的 Event.observe 返回函数

转载 作者:行者123 更新时间:2023-12-04 06:57:49 24 4
gpt4 key购买 nike

我正在尝试使用 Prototype 的 Event.observe 函数从使用内联事件触发器迁移到使用事件监听器。有一些内联命令我不知道如何使用函数调用来处理。

我想从:

<form id='formFoo' action='whatever.php' onsubmit="return Foo.verify(this);">

到事件调用:
Event.observe('formFoo', 'submit', Foo.verify);

这当然行不通,因为我需要调用函数的返回值来确定表单是否被提交。

我如何使用事件处理程序来做到这一点?

最佳答案

最简单的方法可能是 Event.Stop 从原型(prototype)。这对我有用(把它放在任何脚本 block 中):

Foo = { verify: function(){ return false } };

Event.observe(window, 'load', function() {
Event.observe('formFoo', 'submit', function(e){
if(! Foo.verify($('formFoo'))){
e.stop();
}
});
});

它停止每一个表单提交;你只需要改变 Foo.verify 来做你想做的事。

解释:当提交事件被触发时,prototype 向处理程序传递一个原型(prototype) Event表示事件的对象,以及 stop该对象上的方法阻止提交。剩下的只是设置事件。

小注:除此之外,直接将 Foo.verify 作为处理程序传递将导致 verify 作为函数而不是方法被调用(这将是调用中的全局对象,而不是 Foo)。这种情况可能没问题 - 如果验证不使用它,你就可以了。不过要注意区别。

关于使用原型(prototype)的 Event.observe 返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2331792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com