Здравствуйте! Есть код:
<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)
Спасибо!