Cherka Trova
Всем доброго времени суток, особенно тем, кто знает JS и не любит мудрствовать лукаво.
В общем, проблема простенькая. Есть форма, в форме поле ввода строки и n-ое число чекбоксов (заранее известное и строго определенное). Первый из этих чекбоксов, как вы уже, возможно, догадались, носит гордую табличку "Отметить все". Так вот. Нужно как-то скрипт обработки этого чекбокса придумать, т.е. по нажатию на него присваивать свойству checked всех остальных чекбоксов соответствующее свойство данного.
Есть в сети скриптик, который советует для этого ввести параметр name для всех чекбоксов одинаковым в виде массива, скажем list[] и через обращение напрямую по параметру name и индексу элемента менять его состояние. Вот таким образом:
function checkAll(oForm, cbName, checked)
{
for (var i=0; i < oForm[cbName].length; i++) oForm[cbName][i].checked = checked;
}
Но все дело в том, что когда я начинаю передавать данные из формы в обработчик, учитываются только отмеченные поля по количество, безотносительно конкретного номера по порядку в форме. Поэтому пришлось разграничить элементы введя в поле name соответственно list[1], list[2] и т.д.
При этом вышеописанный скрипт работать отчего-то перестал.
Поскольку в JS я, как выясняется, не очень силен, то попробовал присвоить чекбоксам параметр id соответствующего номера и пройтись по ним при помощи document.getElementById(i), но результат нулевой.
Помогите, пожалуйста, правильно составить этот скрипт, желательно что-то максимально простое, как приведенный пример))
Заранее спасибо.
В общем, проблема простенькая. Есть форма, в форме поле ввода строки и n-ое число чекбоксов (заранее известное и строго определенное). Первый из этих чекбоксов, как вы уже, возможно, догадались, носит гордую табличку "Отметить все". Так вот. Нужно как-то скрипт обработки этого чекбокса придумать, т.е. по нажатию на него присваивать свойству checked всех остальных чекбоксов соответствующее свойство данного.
Есть в сети скриптик, который советует для этого ввести параметр name для всех чекбоксов одинаковым в виде массива, скажем list[] и через обращение напрямую по параметру name и индексу элемента менять его состояние. Вот таким образом:
function checkAll(oForm, cbName, checked)
{
for (var i=0; i < oForm[cbName].length; i++) oForm[cbName][i].checked = checked;
}
Но все дело в том, что когда я начинаю передавать данные из формы в обработчик, учитываются только отмеченные поля по количество, безотносительно конкретного номера по порядку в форме. Поэтому пришлось разграничить элементы введя в поле name соответственно list[1], list[2] и т.д.
При этом вышеописанный скрипт работать отчего-то перестал.
Поскольку в JS я, как выясняется, не очень силен, то попробовал присвоить чекбоксам параметр id соответствующего номера и пройтись по ним при помощи document.getElementById(i), но результат нулевой.
Помогите, пожалуйста, правильно составить этот скрипт, желательно что-то максимально простое, как приведенный пример))
Заранее спасибо.
for (var i = 0; i < 666; i++) document.form13.elements["list[" + i + "]"].checked = true;
Может, не очень элегантно, но зато работает.
просто чтобы научиться, сейчас много где используется.
Див ид="такиетоинпут"
инпут
инпут
...
инпут
/див
var div=document.getElementById('takietoinput');
for (var id in div.childNodes)
if (div.childNodes[id].tagName=='INPUT')
div.childNodes[id].checked=this.checked
Мсье знает толк в извращениях...