Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Повесить два обработчика [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
Test11
Отправлено: 26 Апреля, 2016 - 12:02:42
Post Id


Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. var sd = ea("input", {}, x({
  2.                 width: '90px',
  3.                     }, g.inputStyle), c.div).oninput=function(){
  4.                     alert('2');
  5.             };         
  6.                        
  7.         sd.onchange = function(e){
  8.                 alert('f');
  9.         };


У меня либо то, либо другое работает, что одно но никак вместе не удается заставить...
 
 Top
IllusionMH
Отправлено: 26 Апреля, 2016 - 12:37:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Test11, и в итоге нихрена не поменялось почти.
Я ж сказал, сначала в переменную, потом уже sd.oninput, sd.change.
Вот если вы не понимаете как оно работает, зачем пытаетесь всё писать "сокращенно"?

Что в переменной sd будет после исправлений?
 
 Top
Test11
Отправлено: 26 Апреля, 2016 - 12:54:59
Post Id


Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Вместо объекта строка это после ввода в строчку символов, короче. Я замучался, можно готовый код, плис. Огорчение
 
 Top
IllusionMH
Отправлено: 26 Апреля, 2016 - 13:04:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Test11, какой вам готовый код, когда никто не знает что вы там за костыли используете? Которые даже сами не понимаете и другим объяснить не можете или не хотите

var sd = ea(...);
sd.onchange = ...
sd.oninput = ...

и это только в случае если эта функция возвращает дом элемент или еще что-нить с подобным апи, иначе работать не будет.
 
 Top
Test11
Отправлено: 26 Апреля, 2016 - 13:17:32
Post Id


Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Вообще та работает
CODE (javascript):
скопировать код в буфер обмена
  1.                 sd.oninput=function(e, elem){          
  2.                 //this.value=1;
  3.                                 console.log('1');  
  4.             };
  5.                                                
  6.                         sd.onchange = function(e){
  7.                                 console.log('2');  
  8.                         };


Перестает работать если в oninput заменим содержимое поля... Вот после этого перестает работать onchange

(Отредактировано автором: 26 Апреля, 2016 - 13:20:46)

 
 Top
Test11
Отправлено: 26 Апреля, 2016 - 16:17:11
Post Id


Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Блин, никаких выходов?
 
 Top
IllusionMH
Отправлено: 26 Апреля, 2016 - 17:41:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Test11, упрощенный пример на jsFiddle, иначе гадать я тут не собираюсь.
 
 Top
Test11
Отправлено: 26 Апреля, 2016 - 17:56:35
Post Id


Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Готово
https://jsfiddle[dot]net/z3z22t3v/

Немного не такой, но суть проблемы та же..
 
 Top
IllusionMH
Отправлено: 26 Апреля, 2016 - 18:00:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Test11, а содержимое инпута поменялось чтобы onchange вызвался? постоянно сеттится 1 и тоже, а значит оно не меняется

(Отредактировано автором: 26 Апреля, 2016 - 18:04:19)

 
 Top
Test11
Отправлено: 26 Апреля, 2016 - 18:13:49
Post Id


Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Блин, так в чем проблема никак не в курю. Можно конкретный рабочий пример?
 
 Top
IllusionMH
Отправлено: 26 Апреля, 2016 - 18:26:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Test11, в том что не пытаетесь даже искать.
https://www[dot]w3[dot]org/TR/html5/form[dot][dot][dot]t-element-events
"HTML5 Spec" пишет:
These events are not fired in response to changes made to the values of form controls by scripts. (This is to make it easier to update the values of form controls in response to the user manipulating the controls, without having to then filter out the script's own changes to avoid an infinite loop.)

Он триггерится только на пользовательское изменение.

Обрабатывайте в input либо blur ивентах.

Дальше я пас.

(Отредактировано автором: 26 Апреля, 2016 - 18:28:10)

 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB