Подсчёт и занесение в массив чекнутых инпутов
Всем драсте)
Есть n-ое количество чекбоксов (сами чекбоксы не находятся внутри тэга <form> ) К примеру есть 6 чекбоксов: <input type="checkbox" name="name_smile" id="id_1"> <input type="checkbox" name="name_smile" id="id_2"> <input type="checkbox" name="name_smile" id="id_3"> <input type="checkbox" name="name_smile" id="id_4"> <input type="checkbox" name="name_smile" id="id_5"> <input type="checkbox" name="name_smile" id="id_6"> при нажатии на ссылку запускается функция подсчитывающая количество выбранных чекбоксов и заносящая их значения в массив. Подскажите, как это сделать? С чекбоксами никогда не работал, по этому не знаю даж с чего начать.. |
Входным параметром указываешь атрибут name группы своих чекбоксов
function checkCbox(groupName) { if (!groupName) { return false; } var group = document.getElementsByName(groupName), result = [], i; for (i = group.length; i--;){ if (group[i].checked === true) { result.push(group[i].value); } } return result; } |
kobezzza,
спасибо. Когда читал про getElementsByName, почти додумал до подобного кода, только с другим циклом и условием. Но т.к. по привычке поставил getElement |
kobezzza,
Не вышло с этим кодом.... Вот все чекбоксы, в том виде как они сейчасть у меня выводятся. 1) 21 <input name="name_smile" id="id_21" value="id_21" type="checkbox"> 2) 10 <input name="name_smile" id="id_10" value="id_10" type="checkbox"> 3) 12 <input name="name_smile" id="id_12" value="id_12" type="checkbox"> 4) 15 <input name="name_smile" id="id_15" value="id_15" type="checkbox"> 5) 19 <input name="name_smile" id="id_19" value="id_19" type="checkbox"> (перед инпутом выводится его ид в бд, это просто для наглядности) Отмечаю все чекбоксы, нажимаю, на ссылку, которая запускает функцию с этим содержанием: var group = document.getElementsByName('name_smile'), result = [], i; for (i = group.length; i--;){ if (group[i].checked) { result.push(group[i].value); alert(result[i]);} } вылетают алерты с таким содержанием: undefined undefined id_12 id_15 id_19 Вообще не понимаю в чём дело, в роде бы всё правильно, но 2 элемента не определены. Подскажите пожалуйста, почему? |
result[i] = group[i].value; У Вас элементы перебирались в цикле в обратном порядке, а .push() добавлял элементы в прямом порядке. |
Matre,
Спасибо, теперь всё работает) |
Часовой пояс GMT +3, время: 12:59. |