Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как на все элементы формы навесить общий обработчик? / 3 сообщений из 3, страница 1 из 1
19.03.2015, 11:45
    #38909585
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на все элементы формы навесить общий обработчик?
На HTML-странице есть HTML-форма.
Я хочу задать общий обработчик для изменений в любом поле.
Но хотелось бы его задавать не в HTML-разметке (oninput="myfunction(this)"), а из скрипта.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function myfunction()
{
...
}

var ol = form.getElementsByTagName('input');
for (var o = 0; o < ol.length ; o++)
{
	var oi = ol[o];
	if (oi.type == 'text') oi.oninput = myfunction;
}



Такой код работает, но в функцию myfunction не передается, из какого элемента она была вызвана.
Если написать oi.oninput = myfunction(oi), то это работает не так, как кажется.
Я также пробовал задать oi.oninput = function(){return myfunction(this);}, но и это работает не так, как я ожидал.

________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
19.03.2015, 11:52
    #38909597
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на все элементы формы навесить общий обработчик?
Alibek B.,

используй jquery, там просто
...
Рейтинг: 0 / 0
19.03.2015, 12:09
    #38909628
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на все элементы формы навесить общий обработчик?
Оказалось проще.
В новых браузерах первым параметром передается event, и внутри доступен this.
Значит на старые браузеры просто не буду заморачиваться.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как на все элементы формы навесить общий обработчик? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]