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 :: Установка onchange в элементе, созданном с помощью js

 PHP.SU

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


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

> Без описания
Aricus
Отправлено: 23 Сентября, 2014 - 04:19:20
Post Id



Частый гость


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


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




В функция создаёт input:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function last(num) {
  3. ...
  4. var new_checkbox = document.createElement("input")
  5. new_checkbox.type = "checkbox";
  6. new_checkbox.name = "katStatus" + num;
  7. new_checkbox.value = "1";
  8. new_checkbox.onchange = "checkbox(" + num + ")";
  9. ...
  10. }

Создаётся всё нормально, но при активации флажка функция checkbox не срабатывает, хотя работает с другими, не созданными функцией, флажками.
 
 Top
OrmaJever
Отправлено: 23 Сентября, 2014 - 10:46:07
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




я не сильный знаток в js, но попробуйте пока поставить такой костыль
CODE (javascript):
скопировать код в буфер обмена
  1. new_checkbox.onchange = function() { checkbox(num); }

а там может кто-то лучший вариант подскажет Подмигивание


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
KingStar
Отправлено: 23 Сентября, 2014 - 11:14:40
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




ковычки лишние

CODE (javascript):
скопировать код в буфер обмена
  1. new_checkbox.onchange = checkbox(num);


-----
То что программа работает, не означает что она написана правильно!
 
 Top
IllusionMH
Отправлено: 23 Сентября, 2014 - 11:26:01
Post Id



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


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


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




KingStar, так ведь сразу результат присвоится, а не обработчик навесится.

OrmaJever, лучше может быть только если переходить к data-* атрибутам(или выдирать значение из name) и вешать общий обработчик события на родителя.

(Отредактировано автором: 23 Сентября, 2014 - 13:46:02)

 
 Top
esterio
Отправлено: 23 Сентября, 2014 - 13:22:56
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




IllusionMH пишет:
лучше может быть только если переходить к data-* атрибутам(или выдирать значение из name) и вешать общий обработчик события на родителя

ИМХО самый верный вариант
 
 Top
KingStar
Отправлено: 23 Сентября, 2014 - 23:10:59
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




IllusionMH, может это как раз таки ему и нужно )


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 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