Чекбоксы, проверка

  • Автор темы trompert
  • Дата начала

trompert

Guest
Чекбоксы, проверка

Туплю...
Подскажите плиз, киньте функцию, есть
<input type="checkbox" name="c[]" value="1">
<input type="checkbox" name="c[]" value="2">
<input type="checkbox" name="c[]" value="3">

Как проверить на заполнение нормально (чтобы хотя бы в одном стоял флаг)? без того чтобы кидать значение в другую переменную при клике по самому чекбоксу?
 

trompert

Guest
Originally posted by Profic
[m]isset[/m]()
Я думал если форум по javascript, то необязательно явно указывать, что все относится к нему.

Провека должна осуществиться на стороне клиента.
 

Profic

just Profic (PHP5 BetaTeam)
[off]/me очень редко смотрит на то в каком форуме топик. В основном на контент.[/off]

если не поможет
form.elements['c[]'].checked
то я не знаю способа на js, кроме как пройтись по всем элементам, полученным через getElementsByName()
но вряд ли первый способ будет работать - т.к. отображать по идее должен один checkbox
 

trompert

Guest
Originally posted by Profic
если не поможет
form.elements['c[]'].checked
то я не знаю способа на js, кроме как пройтись по всем элементам, полученным через getElementsByName()
но вряд ли первый способ будет работать - т.к. отображать по идее должен один checkbox [/B]
В принципе задача свелась к тому - можно ли определить количество полей с одинаковым именем.

Интересно, а если бы было:
<input type="checkbox" name="c[0]" value="1">
<input type="checkbox" name="c[1]" value="1">
<input type="checkbox" name="c[2]" value="1">

То ведь и по ним циклом нельзя пройтись?
 

Profic

just Profic (PHP5 BetaTeam)
Читать умеем?
getElementsByName('c[]')
получаем массив и проверяем в цикле

в последнем случае - обрабатывать на стороне клиента забодаешься, если конечно нет массива, в котором хранятся имена всех checkbox-ов :)
 

trompert

Guest
Originally posted by Profic
Читать умеем?
getElementsByName('c[]')
получаем массив и проверяем в цикле

Да, точно.. Так все шикарно работает. :)

в последнем случае - обрабатывать на стороне клиента забодаешься, если конечно нет массива, в котором хранятся имена всех checkbox-ов :)
Особо бодаться не пришлось :)
Результатом стало:
<script>
function CheckArr(chks){
if (!chks.length)
{
return false;
}

for (var i=0; i<chks.length; i++)
{
if (chks.checked){
alert(chks.value);
return true;
}
}
return false;
}

function CheckIt(form_number) {
if(CheckArr(document.getElementsByName('c[]'))==false)
{
alert("Please check your level of education!");
}
}
</script>

<input type="checkbox" name="c[]" value="1">Cam
<input type="checkbox" name="c[]" value="2">Oxf
<input type="button" onClick="CheckIt(0)">

Спасибо!

-~{}~ 07.12.04 18:48:

Все это породило следующую проблему:
как перенести фокус на чекбокс Edu[] ? :)
Возможно ли это?
 

Profic

just Profic (PHP5 BetaTeam)
Ну так в чем проблема, таким же образом получаем массив и делаем с ними все, что хотим.
 
Сверху