Показать сообщение отдельно
  #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.
Ответить с цитированием