Какой 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, время: 02:01. |