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 :: работа с checkbox и показыванием элементов

 PHP.SU

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


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

> Без описания
просто даня
Отправлено: 26 Октября, 2013 - 23:47:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Март 2012  
Откуда: sev-kav, budennovsk


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

[+][+]


уже 5 дней парюсь, не знаю что делать. одну и ту же функцию по 20 раз уже переписывал.
объясню по подробнее: есть цикл на php который выводит некий список в табличку. в табличке есть checkbox'ы. их может быть и 1 а может быть и 100. но смысл в том, что нужна функция которая будет показывать элемент по ID при том случае если хоть один из чекбоксов отмечен галочкой. пробовал по разному, вот последнее что старался написать:
CODE (javascript):
скопировать код в буфер обмена
  1. function ShowTextChecked() {
  2. 'use strict';
  3. var g = document.getElementByTagName("input"), fo, d;
  4. for (d = 0, fo = g.length; d < fo; d += 1) {
  5.  if (g.item(d).type && g.item(d).type === "checkbox") {
  6.   if (g.item(d).checked === true) {
  7.    showElement("yes");
  8.    showElement("no");
  9.   } else {
  10.    showElement("no");
  11.    showElement("yes");
  12.   }
  13.  }
  14. }
  15. }

можете по обзывать мой гавнокод. я в JS не силен.
showElement - функция которая отлично работает. т.е. проблема точно не в ней.
пожалуйста, помогите написать нормальную функцию.
 
 Top
SAD
Отправлено: 27 Октября, 2013 - 00:32:21
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




так

CODE (javascript):
скопировать код в буфер обмена
  1. function ShowTextChecked() {
  2.     'use strict';
  3.     var g = document.querySelectorAll("input"),
  4.         fo, d;
  5.     for (d = 0, fo = g.length; d < fo; d += 1) {
  6.         if (g.item(d).type && g.item(d).type === "checkbox") {
  7.             if (g.item(d).checked === true) {
  8.                 showElement("yes");
  9.                 showElement("no");
  10.             } else {
  11.                 showElement("no");
  12.                 showElement("yes");
  13.             }
  14.         }
  15.     }
  16. }
  17.  


или так


CODE (javascript):
скопировать код в буфер обмена
  1. function ShowTextChecked() {
  2.     'use strict';
  3.     var g = document.getElementByTagName("input"),
  4.         fo, d;
  5.     for (d = 0, fo = g.length; d < fo; d += 1) {
  6.         if (g[d].type && g[d].type === "checkbox") {
  7.             if (g[d].checked === true) {
  8.                 showElement("yes");
  9.                 showElement("no");
  10.             } else {
  11.                 showElement("no");
  12.                 showElement("yes");
  13.             }
  14.         }
  15.     }
  16. }

(Отредактировано автором: 27 Октября, 2013 - 00:39:10)

 
 Top
MAXUS
Отправлено: 27 Октября, 2013 - 09:46:00
Post Id


Посетитель


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


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




просто даня пишет:
уже 5 дней парюсь, не знаю что делать. одну и ту же функцию по 20 раз уже переписывал.


Вот вы паритесь...

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function check(){
  3.         if(document.querySelector("input:checked")) alert("Щастье есь");
  4.         else alert("Щастье не выбрано");
  5. }
  6.  


Или document.querySelectorAll()

http://dev[dot]w3[dot]org/csswg/selectors4/#overview

Работать будет во всех современных браузерах, где ставят обновления. В IE начиная с 9 версии. В 8-й, по-моему, тоже должно, но не в режиме совместимости,т.е. в IE 10 не проверишь.

Если надо, чтобы работало везде, то:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function check(){
  3.         var inputs=document.getElementsByTagName("input");
  4.         for(var i=0;i<inputs.length;i++){
  5.                 if(inputs[i].checked){
  6.                         alert("Щастье есть");
  7.                         return;
  8.                 }
  9.         }
  10.         alert("Щастье не выбрано");
  11. }
  12.  

(Отредактировано автором: 27 Октября, 2013 - 09:56:10)

 
 Top
nerv
Отправлено: 27 Октября, 2013 - 11:13:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


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




вариант перебора в функциональном стиле:
CODE (javascript):
скопировать код в буфер обмена
  1. var inputs = document.getElementsByTagName("input");
  2.        
  3. Array.prototype.forEach.call( inputs, function( item ) {
  4.     console.log( item.value );
  5. });

http://learn[dot]javascript[dot]ru/play/jtIXOb


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 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