Какой event происходит при атозаполнении?
Доброе время суток. Отслеживаю изменения в текстовом инпуте. При вводе с клавиатуры прекрасно работают onKeyUp и\или onChange. Но при вставке текста с помощью автозаполнения мозиллы (ну или других браузеров) эти евенты не происходят. Вопрос в том как отследить это событие.
Заранее спасибо. |
Думаю должно помочь:
<form name="forma">
<input type="text" />
<input type="text" readonly />
</form>
<script type="text/javascript">
window.onload = function(){
var event = ['keyup', 'change'];
for(i=0; i<event.length; i++){
document.forms['forma']['on'+event[i]] = function(i){
this.elements[1].value = this.elements[0].value == '' ? '' : 'то-то и оно Михалыч!';
};
}
};
</script>
|
Цитата:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
...
<script type='text/javascript'>
$(document).ready(function(){
var ta = $('#text');
ta.bind('change focus keyup select',function(){
// твой код
});
});
</script>
|
Хм, спасибо за ответы, но разве оба скрипта не эквививалентны следующему?
<form name="forma">
<input id ="in1" type="text" />
<input id="in2" type="text" readonly />
</form>
<script type="text/javascript">
window.onload = function(){
document.getElementById("in1").onchange=f1;
document.getElementById("in1").onkeyup=f1;
}
function f1()
{
document.getElementById("in2").value=document.getElementById("in1").value== ''?'':"aaaa";
}
</script>
Но так у меня не работает.. Именно при автозаполнении, вставка из буфера и все остальные действия работают. Дело в том что мне надо сделать именно в таком виде иначе много чего переделывать. Если мой вариант и ваш не эквивалентны прошу объяснить в чем разница. |
Кстати, при автозаполнении формы по контрол-энтер в опере вообще не вызывается никаких событий: ни focus, ни change, ни DOMControlValueChanged/input/DOMSubtreeModified.
|
В том-то и дело. В мозилле похоже тоже..
|
Цитата:
|
Цитата:
В любом случае мне это не слишком удобно.. У меня проверка синтаксиса в 30+ полях.. Не очень хочется дублировать их всех текстареями и скрытыми инпутами. Я вообще думал что решение в каком-то эвенте связанном с кукизами.. Ведь заполняет браузер из кукизов по идее. |
Ну всегда есть на крайний случай дедовский сеттаймаут и сравнение значения с предыдущим.
|
| Часовой пояс GMT +3, время: 07:00. |