帮助Prototype JS和事件绑定

时间:2011-07-20 18:07:46

标签: javascript javascript-events event-handling prototypejs

我正在开发一个基本上有一个表单并包含一个JS文件的网站:http://assets.sprint.degreesearch.org/assets/defaults.js?1311179143

我要做的是动态地在表单提交上添加一个额外的函数(通过提交按钮上的onclick函数或通过覆盖JS中包含的函数,这些函数在表单提交时触发。

问题是我对Prototype.js不是很熟悉,我无法在表单提交上执行函数。当on on onclick时,它会触发,但会立即被原型取消,我相信它的执行会在中途停止。

有问题的网站是http://sprint.degreesearch.org/collegefunnel网站的第4步,在第4步,按下提交,我想运行一个理想情况下需要大约200-300毫秒的JS功能

任何指针我如何解除与鼠标按下相关的事件的绑定并在其前面插入我的动态脚本然后绑定回默认绑定的任何内容

由于 Sparsh Gupta

1 个答案:

答案 0 :(得分:1)

Prototype有一个stopObserving方法用于解除绑定事件。根据事件的绑定位置,您可以在表单提交或其他元素的鼠标事件上调用stopObserving

但是,我认为这不是问题。当你说要运行需要200-300ms的JS函数时,我感到困惑。所有JavaScript都是同步的,因此执行所需的时间无关紧要。我怀疑有一个未说明的要求,即所讨论的函数实际上是一个异步调用,可能在这段时间内不会返回。

在这种情况下,您真正​​想要做的是取消表单提交。表单提交可以通过以下两种方式之一进行:要么是自然形式提交,要么实际上是触发某种异步调用。

如果是自然表单提交,您可以将新事件处理程序绑定到表单的提交操作,并调用event.preventDefault()以阻止浏览器发布到服务器。然后,在表单上调用.submit()再次启动它。