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
Форумы портала PHP.SU :: Версия для печати :: выбранные чекбоксы
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » выбранные чекбоксы

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

1. lamozavrik - 12 Января, 2012 - 15:57:58 - перейти к сообщению
Здравствуйте. Подскажите, как можно узнать значения выбранных чекбоксов с помощью javascript/jquery? В PHP всё просто, даю имя чекбоксам с квадратными скобками
CODE (html):
скопировать код в буфер обмена
  1. <input type="checkbox" name="aaa[]" value="1"/>
  2. <input type="checkbox" name="aaa[]" value="2"/>
  3. <input type="checkbox" name="aaa[]" value="3"/>

и получаю массив с выбранными чекбоксами
PHP:
скопировать код в буфер обмена
  1.  
  2. $_POST['aaa'][0] // значение 1
  3. $_POST['aaa'][1] // значение 2
  4. $_POST['aaa'][2] // значение 3
  5.  

, а как это сделать на JS не знаю. Буду премного благодарен за помощь )
2. EuGen - 12 Января, 2012 - 16:03:05 - перейти к сообщению
Простой пример:
CODE (js):
скопировать код в буфер обмена
  1.  
  2. function getChecks(sName)
  3. {
  4.    var rgChecks = document.getElementsByName(sName);
  5.    for(var i=0; i<rgChecks.length; i++)
  6.    {
  7.       alert((rgChecks[i].checked?"on":"off"));
  8.    }
  9. }
  10.  

CODE (html):
скопировать код в буфер обмена
  1.  
  2.     <input type="checkbox" name="aaa[]" value="1"/>
  3.     <input type="checkbox" name="aaa[]" value="2"/>
  4.     <input type="checkbox" name="aaa[]" value="3"/>
  5.     <input type="button" onClick="getChecks('aaa[]'); return true;">
3. lamozavrik - 12 Января, 2012 - 16:07:13 - перейти к сообщению
Спасибо. Сейчас попробую ))
(Добавление)
Может я что то не так делаю, но оно возвращает true или false всех чекбоксов в зависимости от того, выбран он или нет. А мне нужно, что бы возвращало value всех выбранных чекбоксов.
4. EuGen - 12 Января, 2012 - 16:42:12 - перейти к сообщению
Верно, он возвращает - выбрано или нет. Вероятно, я не так понял. Если нужны именно значения, то это value:
CODE (javascript):
скопировать код в буфер обмена
  1. function getChecks(sName)
  2. {
  3.    var rgChecks = document.getElementsByName(sName);
  4.    for(var i=0; i<rgChecks.length; i++)
  5.    {
  6.       alert((rgChecks[i].value));
  7.    }
  8. }

Если именно выбранных то проверяйте - как в предыдущем примере - еще и rgChecks[i].checked
5. lamozavrik - 12 Января, 2012 - 16:50:16 - перейти к сообщению
EuGen, это я тоже знал )) Но оно тогда возвращает значения всех чекбоксов с таким именем ))) А мне бы, что бы возвращало именно выбранных чекбоксов ))) Уже голову себе сломал ))
6. EuGen - 12 Января, 2012 - 16:52:28 - перейти к сообщению
Я и написал
EuGen пишет:
Если именно выбранных то проверяйте - как в предыдущем примере - еще и rgChecks[i].checked

То есть это будет:
CODE (javascript):
скопировать код в буфер обмена
  1.     function getChecks(sName)
  2.     {
  3.        var rgChecks = document.getElementsByName(sName);
  4.        for(var i=0; i<rgChecks.length; i++)
  5.        {
  6.          if(rgChecks[i].checked)
  7.          {
  8.            alert((rgChecks[i].value));
  9.          }
  10.        }
  11.     }
7. lamozavrik - 12 Января, 2012 - 16:57:56 - перейти к сообщению
Ага, то есть если мне нужен массив с выбранными чекбоксами, то мне прийдется всё равно их всех перебирать на условие checked, и если true, то заносить в массив? )) Просто я думал, что есть способ изначально выбрать только чекнутые чекбоксы )

 

Powered by ExBB FM 1.0 RC1