powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / onkeyup и onchange одновременно
10 сообщений из 10, страница 1 из 1
onkeyup и onchange одновременно
    #37936554
Полено
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеемм следующий код:

<!DOCTYPE html>
<html>
<head>
<script>
function upperCase(aID){
var x=document.getElementById(aID);
x.value=x.value.toUpperCase();
}
</script>
</head>
<body>
Enter your name: <input type="text" id="fname" onkeyup="upperCase(id)" />
<p>onkeyp отдельно - работает</p>
Enter your name: <input type="text" id="fname1" onchange="upperCase(id)" />
<p>onchange отдельно - работает </p>
Enter your name: <input type="text" id="fname2" onkeyup="upperCase(id);" onchange="alert('Worked!')"/>
<p>onkeyup и onchange - не работает</p>
Enter your name: <input type="text" id="fname3" onblur="upperCase(id);" onchange="alert('Worked!')"/>
<p>onblur и onchange - работает</p>
</body>
</html>

Почему для третьего поля не срабатывает событие onchange?
...
Рейтинг: 0 / 0
onkeyup и onchange одновременно
    #37936578
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<!DOCTYPE html>
<html>
<head>
<script>
function upperCase(aID){
 var x=document.getElementById(aID);
 x.value=x.value.toUpperCase();
}
</script>
</head>
<body>
Enter your name: <input type="text" id="fname" onkeyup="upperCase(id)" />
<p>onkeyp отдельно - работает</p>
Enter your name: <input type="text" id="fname1" onchange="upperCase(id)" />
<p>onchange отдельно - работает </p>
Enter your name: <input type="text" id="fname2" onkeyup="upperCase(id);" onchange="alert('Worked!')"/>
<p>onkeyup и onchange - не работает</p>
Enter your name: <input type="text" id="fname3" onblur="upperCase(id);" onchange="alert('Worked!')"/>
<p>onblur и onchange - работает</p>
</body>
</html>
...
Рейтинг: 0 / 0
onkeyup и onchange одновременно
    #37936590
mit1905
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полено,

onchange может сработать и при программном изменении x.value
onchange происходит в момент потери фокуса (может и по клавише <Enter> - в FireFox например).
Счетчик поставь в твой функции upperCase() - сколько раз она вызывается, сбрасывай счетчик по событию onblur.
Если использовать alert() - можно не увидеть много чего, что происходит, так как alert() останавливает выполнение скрипта.
...
Рейтинг: 0 / 0
onkeyup и onchange одновременно
    #37936623
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полено, пользуйся более подходящими событиями:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<!DOCTYPE html>
<html>  
<head></head>  
<body>
  Enter your name: <input id="fname" type="text" />
  <script>      
    var fname = document.getElementById('fname');
      
    fname.oninput = fname.onpropertychange = onPropertyChange;
      
    function onPropertyChange() {        
      this.value = this.value.toUpperCase();
    }      
  </script>
</body>
</html>
...
Рейтинг: 0 / 0
onkeyup и onchange одновременно
    #37936660
Полено
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПолено, пользуйся более подходящими событиями:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<!DOCTYPE html>
<html>  
<head></head>  
<body>
  Enter your name: <input id="fname" type="text" />
  <script>      
    var fname = document.getElementById('fname');
      
    fname.oninput = fname.onpropertychange = onPropertyChange;
      
    function onPropertyChange() {        
      this.value = this.value.toUpperCase();
    }      
  </script>
</body>
</html>



Вообще здорово, замена регистра происходит без вывода первоначального символа.
Но основную проблему это не решает - нужно вызвать событие по окончании редактирования (потере фокуса или нажатии ентер).
Как ?!
...
Рейтинг: 0 / 0
onkeyup и onchange одновременно
    #37936666
Полено
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПоленоskyANAПолено, пользуйся более подходящими событиями:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<!DOCTYPE html>
<html>  
<head></head>  
<body>
  Enter your name: <input id="fname" type="text" />
  <script>      
    var fname = document.getElementById('fname');
      
    fname.oninput = fname.onpropertychange = onPropertyChange;
      
    function onPropertyChange() {        
      this.value = this.value.toUpperCase();
    }      
  </script>
</body>
</html>



Вообще здорово, замена регистра происходит без вывода первоначального символа.
Но основную проблему это не решает - нужно вызвать событие по окончании редактирования (потере фокуса или нажатии ентер).
Как ?!

И так же непонятно как быть если число элементов типа TEXT на странице не фиксировано - от 0 и до бесконечности (таблица спецификации документа).
...
Рейтинг: 0 / 0
onkeyup и onchange одновременно
    #37936691
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Код: javascript
1.
fname.oninput = fname.onpropertychange = onPropertyChange;


Э-э-э... А что, onpropertychange стало уже кросс-browser'ным?
...
Рейтинг: 0 / 0
onkeyup и onchange одновременно
    #37936810
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftskyANA
Код: javascript
1.
fname.oninput = fname.onpropertychange = onPropertyChange;


Э-э-э... А что, onpropertychange стало уже кросс-browser'ным?Нет, поэтому и используется oninput .
...
Рейтинг: 0 / 0
onkeyup и onchange одновременно
    #37936823
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПоленоВообще здорово, замена регистра происходит без вывода первоначального символа.
Но основную проблему это не решает - нужно вызвать событие по окончании редактирования ( потере фокуса или нажатии ентер).
Как ?!
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<!DOCTYPE html>
<html>  
<head></head>  
<body>
  Enter your name: <input id="fname" onblur="alert('Done!')" type="text" />
  <script>      
    var fname = document.getElementById('fname');
      
    fname.oninput = fname.onpropertychange = onPropertyChange;
      
    function onPropertyChange() {        
      this.value = this.value.toUpperCase();
    }      
  </script>
</body>
</html>
...
Рейтинг: 0 / 0
onkeyup и onchange одновременно
    #37936829
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПоленоИ так же непонятно как быть если число элементов типа TEXT на странице не фиксировано - от 0 и до бесконечности (таблица спецификации документа).Как, как... Пробежаться по ним в цикле и подписаться на события.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / onkeyup и onchange одновременно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]