проверка чекбокса (радио)

SA739

Cogito, ergo sum
проверка чекбокса (радио)

доброго времени суток
подскажите где грабли:

for (var i=0;i<3;i++) {
if (eval("what.pay_traf" + i + ".checked")) {
valid = false;
output += 'Enter user commentdddddddddddddddd\n';
}
}
if (!valid)
alert(output);

нужно узнать отмечен ли хоть один чекбокс(радио)..
вышеприведенный код не отрабатывает...

заранее благодарен
 

sergadm

Новичок
что то вроде этого, а зачем тебе
<form name="form1" method="post" action="">
<input type="radio" name="b1" value="radiobutton" checked >
<input type="radio" name="b0" value="radiobutton" checked>
<input type="radio" name="b2" value="radiobutton">
<input type="radio" name="b3" value="radiobutton">
</form>

<script>
valid=true;
output="q";
for (var i=0;i<3;i++) {
if (document.all["b"+i].checked) {
valid = false;
output += 'Enter user commentdddddddddddddddd\n';
}
}
if (!valid)
alert(output);
</script>
 

SA739

Cogito, ergo sum
спасибо за советы
проблема решилась так:

for (var i=0;i<3;i++) {
if (eval("what.pay_traf" + i + ".checked") == false)
pay++;
}
if (pay == 3) {
valid = false;
output += 'Check one or more paid traf\n';
}
if (!valid)
alert(output);

зы. может конечно и криво но в js я не спец
 

MD

Guest
PHP:
with (document.frmname)
{
    if (!(pay_traf0.checked || pay_traf1.checked || pay_traf2.checked))
    {
        alert('bad');
    }
}
так приятней все таки выглядит твой код.
 

sergadm

Новичок
MD: это если мало radio, приходилось проверять массивы из 120 радио
 

MD

Guest
это моя понимать. но речь идет о 3 боксах, нафик городить огород в трех боксах?
 

WDStalker

Guest
Вот так я делаю:

for (i=0;i<FormObj.length;i++)
{
var tempobj = FormObj.elements;
if(tempobj.type.toLowerCase() == "checkbox" && tempobj.checked)
{
var Flag = true;
break;
}
}
 
Сверху