Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   реакция на нажатие кнопки без onkey* (https://javascript.ru/forum/events/40784-reakciya-na-nazhatie-knopki-bez-onkey%2A.html)

FanOfGun 20.08.2013 00:09

реакция на нажатие кнопки без onkey*
 
сорри, если не туда
ковыряюсь в чужом коде, при вводе данных в input проиходят некие действия, но судя по консоли хрома все onkey* указывают на null. что бы это могло значить? заранее благодарен.

danik.js 20.08.2013 01:20

oninput или onchange

FanOfGun 20.08.2013 10:12

не-а,
document.getElementById('...').oninput
null
document.getElementById('...').onchange
null
document.getElementById('...').onkeydown
null
document.getElementById('...').onkeypress
null
document.getElementById('...').onkeyup
null

ksa 20.08.2013 10:56

Цитата:

Сообщение от FanOfGun
судя по консоли хрома все onkey* указывают на null

Как вариант, посмотри вообще все на on*...

FanOfGun 20.08.2013 11:14

итак, listener я нашел, вот как он вешается:
objname = {
	...

	Initialize: function() {
		...
		$('...').observe( 'keypress', this.OnInputKeyPress.bindAsEventListener(this) );
		$('...').observe( 'keyup', this.OnBuyerPriceInputKeyUp.bindAsEventListener(this) );
		...
	}
}

но возникли еще пара вопросов(ну уж извините, не часто сталкиваюсь с js, знаю только основы): почему у input'а onkeypress и onkeyup указывают на null? как вызвать эти обработчики?

danik.js 20.08.2013 11:38

свойства on* - это старый способ навешать обработчик. Описан в стандарте DOM Level 1. DOM Level 2 (если не ошибаюсь) предлагает вариант с addEventListener/removeEventListener/dispatchEvent и к свойствам on* не имеет никакого отношения.

В отладчике как минимум хрома можно посмотреть абсолютно все события, в независимости от способа (Вкладка справа Event Listeners)


Часовой пояс GMT +3, время: 04:56.