Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.11.2010, 13:49
rpz rpz вне форума
Новичок на форуме
Отправить личное сообщение для rpz Посмотреть профиль Найти все сообщения от rpz
 
Регистрация: 17.11.2010
Сообщений: 4

Какой event происходит при атозаполнении?
Доброе время суток. Отслеживаю изменения в текстовом инпуте. При вводе с клавиатуры прекрасно работают onKeyUp и\или onChange. Но при вставке текста с помощью автозаполнения мозиллы (ну или других браузеров) эти евенты не происходят. Вопрос в том как отследить это событие.
Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 17.11.2010, 17:46
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Думаю должно помочь:
<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>

Последний раз редактировалось monolithed, 17.11.2010 в 17:49.
Ответить с цитированием
  #3 (permalink)  
Старый 17.11.2010, 22:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,435

Сообщение от rpz
как отследить это событие
Меня в своё время вооружили вот таким скриптом...

<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>
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2010, 21:57
rpz rpz вне форума
Новичок на форуме
Отправить личное сообщение для rpz Посмотреть профиль Найти все сообщения от rpz
 
Регистрация: 17.11.2010
Сообщений: 4

Хм, спасибо за ответы, но разве оба скрипта не эквививалентны следующему?

<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>


Но так у меня не работает.. Именно при автозаполнении, вставка из буфера и все остальные действия работают. Дело в том что мне надо сделать именно в таком виде иначе много чего переделывать.

Если мой вариант и ваш не эквивалентны прошу объяснить в чем разница.
Ответить с цитированием
  #5 (permalink)  
Старый 22.11.2010, 22:11
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Кстати, при автозаполнении формы по контрол-энтер в опере вообще не вызывается никаких событий: ни focus, ни change, ни DOMControlValueChanged/input/DOMSubtreeModified.
Ответить с цитированием
  #6 (permalink)  
Старый 22.11.2010, 22:28
rpz rpz вне форума
Новичок на форуме
Отправить личное сообщение для rpz Посмотреть профиль Найти все сообщения от rpz
 
Регистрация: 17.11.2010
Сообщений: 4

В том-то и дело. В мозилле похоже тоже..
Ответить с цитированием
  #7 (permalink)  
Старый 22.11.2010, 22:47
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от subzey
Кстати, при автозаполнении формы по контрол-энтер в опере вообще не вызывается никаких событий: ни focus, ни change, ни DOMControlValueChanged/input/DOMSubtreeModified.
Полгода назад делал один сервис, там я textarea использовал, после из нее в скрытые input передавал полученные значения.
Ответить с цитированием
  #8 (permalink)  
Старый 22.11.2010, 23:08
rpz rpz вне форума
Новичок на форуме
Отправить личное сообщение для rpz Посмотреть профиль Найти все сообщения от rpz
 
Регистрация: 17.11.2010
Сообщений: 4

Сообщение от monolithed Посмотреть сообщение
Полгода назад делал один сервис, там я textarea использовал, после из нее в скрытые input передавал полученные значения.
Ты это делал чтобы не включалось автозаполнение или на текстареа работают нужные евенты?

В любом случае мне это не слишком удобно.. У меня проверка синтаксиса в 30+ полях.. Не очень хочется дублировать их всех текстареями и скрытыми инпутами. Я вообще думал что решение в каком-то эвенте связанном с кукизами.. Ведь заполняет браузер из кукизов по идее.
Ответить с цитированием
  #9 (permalink)  
Старый 22.11.2010, 23:22
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,034

Ну всегда есть на крайний случай дедовский сеттаймаут и сравнение значения с предыдущим.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 13:28
Ошибка при добавлении обработчика к событию Riim Events/DOM/Window 32 19.01.2010 14:17
Не отрабатывает событие onmouseout при внедрении нового слоя ilshat Элементы интерфейса 3 28.07.2008 06:27
Теряется event при перемещении объекта (Drag&Drop) seagor Events/DOM/Window 16 25.07.2007 01:28