Обработка ввода в поле INPUT типа Text
Подскажите, как делается обработка ввода в поле INPUT типа Text?
onChange не подходит, потому что нужна обработка содержание в момент ввода, а не после перемещения фокуса с поля. Например на Яндексе как-то это дело обрабатывается, когда они список подходящих слов выводят. |
http://codeshit.com/post416
Посмотрите тут. |
<input type="text" onkeyup="alert(this.value)"> |
Gozar,
пользователь же может и драг-н-дропом текст перетащить. Нужно проверять именно DOMControlValueChange и его аналоги. |
subzey,
Цитата:
|
Цитата:
|
|
subzey,
Спасибо, мне под IE нужно было, а это onPropertychange Вот тут ещё: http://webpeppers.ru/33.html |
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) Спасибо! |
<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" />
|
спасибо! а подскажите, как разрешить ещё стрелки вправо/влево?
|
они так разрешены, смотрите мой пример
|
да, точно, виноват.. а что-то сначала не получилось у меня..
Вот, понял - в IE8 не даёт стрелочками передвигаться.. и в Crome |
Цитата:
|
| Часовой пояс GMT +3, время: 19:25. |