Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Событие на теге input срабатывает несколько раз (https://javascript.ru/forum/events/43638-sobytie-na-tege-input-srabatyvaet-neskolko-raz.html)

hrundel 15.12.2013 10:54

Событие на теге input срабатывает несколько раз
 
С помощью jQuery на текстовое поле <input type="text" name="myage" value="100"> навешиваю событие, чтобы оно срабатывало а) при нажатии кнопки, б) при потери фокуса. Это нужно, чтобы посылать Ajax-запрос для проверки содержимого поля на сервере.
Мой js-код:
$(document).ready(
	function(){
		$('input[name=myage]').bind('keydown blur', function(){
			alert('123');
		}); 
	}
);

К сожалению, событие срабатывает два раза, особенно это заметно в Firefox. То есть при потери фокуса сообщение alert() показывается два раза. Какое событие надо использовать, чтобы всё работало корректно.

Пример на jsfiddle.net

DeD_Mazai 15.12.2013 13:29

У меня всё работает как часы. Вы уверены в правильности работы остального кода скрипта?

hrundel 15.12.2013 13:54

Вы ошибаетесь. Попробуйте в разных браузерах. Попробуйте также фокус клавишей Tab поменять.

danik.js 15.12.2013 14:49

hrundel, ну да, в фф срабатывает и keydown и blur. И почему тебя это беспокоит? В нормальной реализации все равно нужно использовать таймауты. Можешь еще вместо blur использовать change. Или вобще не использовать ни blur ни change. А зачем? Только лучше вместо keydown (это же не единственный способ изменить содержимое поля) использовать input (propertychange в IE8)


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