Предотвращение звонка / звонка в обработчике событий PrototypeJS - PullRequest
0 голосов
/ 18 марта 2011

Как мне перевести следующее, чтобы вместо этого использовать PrototypeJS Event.observe?

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

Цель состоит в том, чтобы предотвратить динг, который в некоторых случаях не должен воспроизводиться (в IE9).

1 Ответ

1 голос
/ 18 марта 2011

То, что вы процитировали, выглядело бы так, используя материал событий 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).

...