防止PrototypeJS事件处理程序中的bell / ding

时间:2011-03-18 08:29:20

标签: internet-explorer javascript-events prototypejs

如何将以下内容翻译成PrototypeJS Event.observe?

<input type="text" .... onkeypress="if(event.keyCode==13)return false;">

目的是防止在某些情况下不应播放的声音(在IE9中)。

1 个答案:

答案 0 :(得分:1)

你引用的内容看起来像使用Prototype的事件:

var input = /* ...get the `input` element, how will depend on your structure... */;
input.observe('keypress', function(event) {
    if (event.keyCode == 13) {
        event.stop();
    }
});

Event#stop执行两项操作:它会阻止默认操作(如果有),并且会停止事件冒泡。如果您只是想阻止默认操作但不想冒泡,请使用Event#preventDefault代替(Prototype将确保它在那里,即使是在离开它的浏览器上);如果你只想停止冒泡而不是阻止默认操作,请改用Event#stopPropagation(同样,Prototype会确保它在那里)。


在查找input元素方面:如果它有id,那很容易:

var input = $('theId');

或者,您可以使用$$找到它所在的位置或其他属性,它提供了相当强大的选择器(大多数CSS3)。