Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.12.2009, 22:32
Новичок на форуме
Отправить личное сообщение для motl Посмотреть профиль Найти все сообщения от motl
 
Регистрация: 10.12.2009
Сообщений: 2

Обработка ввода в поле INPUT типа Text
Подскажите, как делается обработка ввода в поле INPUT типа Text?
onChange не подходит, потому что нужна обработка содержание в момент ввода, а не после перемещения фокуса с поля.
Например на Яндексе как-то это дело обрабатывается, когда они список подходящих слов выводят.
Ответить с цитированием
  #2 (permalink)  
Старый 10.12.2009, 23:53
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

http://codeshit.com/post416
Посмотрите тут.
Ответить с цитированием
  #3 (permalink)  
Старый 11.12.2009, 08:46
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

<input type="text" onkeyup="alert(this.value)">
Ответить с цитированием
  #4 (permalink)  
Старый 11.12.2009, 09:27
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Gozar,
пользователь же может и драг-н-дропом текст перетащить.
Нужно проверять именно DOMControlValueChange и его аналоги.
Ответить с цитированием
  #5 (permalink)  
Старый 11.12.2009, 10:07
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

subzey,
Цитата:
Нужно проверять именно DOMControlValueChange и его аналоги.
совсем не обязательно, можно еще по таймеру проверять содержимое value

Последний раз редактировалось Gozar, 11.12.2009 в 10:09.
Ответить с цитированием
  #6 (permalink)  
Старый 11.12.2009, 10:51
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от subzey
Нужно проверять именно DOMControlValueChange и его аналоги.
И какие у него аналоги?!
Ответить с цитированием
  #7 (permalink)  
Старый 11.12.2009, 12:55
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

  • DOMControlValueChanged — опера
  • input — XUL (гекконы)
  • propertychange (где property="value") — ослик
  • DOMCharacterDataModified, DOMSubtreeModified — вебкит
Все это расписано в статье по ссылке выше.
Ответить с цитированием
  #8 (permalink)  
Старый 11.12.2009, 13:16
Новичок на форуме
Отправить личное сообщение для motl Посмотреть профиль Найти все сообщения от motl
 
Регистрация: 10.12.2009
Сообщений: 2

subzey,
Спасибо, мне под IE нужно было, а это onPropertychange
Вот тут ещё: http://webpeppers.ru/33.html
Ответить с цитированием
  #9 (permalink)  
Старый 16.10.2010, 23:16
Интересующийся
Отправить личное сообщение для glutton Посмотреть профиль Найти все сообщения от glutton
 
Регистрация: 26.03.2009
Сообщений: 25

FireFox event.KeyCode и event.which
Здравствуйте! Есть код:

<input type="hidden" id="tarif_obl" value="20">
<input id="input_km" type=TEXT  value="2" onFocus="this.select();" onKeyUp="ChangeOnFly();" name=km> введите километры
<div>200р. + <span id="dostavka">20</span>р.</div>


Во всех браузерах прекрасно работает эта функция:

function ChangeOnFly()
{
	var km = document.getElementById('input_km').value;
	km = km-0;
	
	var tarif = document.getElementById('tarif_obl').value;
	tarif = tarif-0;

	document.getElementById('dostavka').firstChild.nodeValue = km*tarif;
}


А вот такая функция не работает в FireFox3 (значение при вводе не меняется):

function ChangeOnFly()
{
	var km = document.getElementById('input_km').value;
	km = km-0;
	
	var tarif = document.getElementById('tarif_obl').value;
	tarif = tarif-0;

	var keycode; // для firefox и остальных браузеров !!!
	if (!event) var event = window.event;
	if (event.keyCode) keycode = event.keyCode;
	else if (event.which) keycode = event.which;
	
	// только цифры на основной клаве и цифровой, Backspase и Delete
	if ( ((event.keyCode>=48) && (event.keyCode<=57)) || ((event.keyCode>=96) && (event.keyCode<=105)) || (event.keyCode==8) || (event.keyCode==46) )	 {
		document.getElementById('dostavka').firstChild.nodeValue = km*tarif;
	}
	else {
			event.returnValue=false;		
	}
}

Где ошибка?? (Необходимо ограничить ввод иных символов кроме цифр на основной клаве и цифровой, Backspase и Delete)
Спасибо!

Последний раз редактировалось glutton, 16.10.2010 в 23:19.
Ответить с цитированием
  #10 (permalink)  
Старый 16.10.2010, 23:34
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

<script type="text/javascript">
window.onload = function(){
      document.getElementById('input').onkeyup = function(){
            this.value = this.value.replace(/[^\d]/g,'');
      };
};
</script>
<input type="text" id="input" />
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Идея сайта... Стоит двигацца дальше?! B-Vladi Ваши сайты и скрипты 313 16.12.2011 01:04
Поле ввода специальных символов alexsexystayl Серверные языки и технологии 1 06.11.2009 21:29
Добавить поле типа файл на панель (extjs) nechin ExtJS 0 10.06.2009 11:22
трабл с перехватом некоторых символов в поле ввода barbiturat Events/DOM/Window 5 28.08.2008 14:32
как создать елемент с вложеными елементами scuter Events/DOM/Window 11 14.05.2008 16:15