Как проверить radiobutton на пустое значение?

A
На сайте с 30.06.2013
Offline
119
1032

Хочу в javascript проверить. Подскажите как грамотно это сделать?

Проблема в том, что у меня 30 вопросов в тесте и соотвтественно 30 разных radionbutton name.

Если проверить одну radiobutton, то знаю как сделать. Как сделать 30 я понятия не имею.

Вот сама форма


<form action="result.php" method="POST" name="radioform" >

<div>
<p>1. Вопрос 1</p>
<label><input name="q1" value="a" type="radio">Yes</label>
<label><input name="q1" value="b" type="radio">No</label>

</div>
<hr/>

<div>
<p>2. Вопрос 2</p>
<label><input name="q2" value="a" type="radio" >Yes</label>
<label><input name="q2" value="b" type="radio">No</label>

</div>

И таких 30 вопросов

Следовательно далее name будут: q3, q4, q5, q6 и тд

U
На сайте с 09.04.2015
Offline
28
#1

В помощь:

function formhandler()
{
var max=document.forms.MyFormName.elements.length;
var blablasend='';
for (i=0;i<max;i++)
{
switch (document.forms.MyFormName.elements.type)
{
case 'checkbox':
case 'radio':
document.forms.MyFormName.elements.checked===true ? blablasend+=document.forms.MyFormName.elements.name+'='+encodeURIComponent(document.forms.MyFormName.elements.value)+'&' : blablasend=blablasend;
break;
default:
document.forms.MyFormName.elements.value!=='' ? blablasend+=document.forms.MyFormName.elements.name+'='+encodeURIComponent(document.forms.MyFormName.elements.value)+'&' : blablasend=blablasend;
break;
}
}
blablabla;
}

P.S. MyFormName в данном случае заменить на radioform, ну и лишнее убрать.

A
На сайте с 30.06.2013
Offline
119
#2
umercomp:
В помощь:
function formhandler()

{
var max=document.forms.MyFormName.elements.length;
var blablasend='';
for (i=0;i<max;i++)
{
switch (document.forms.MyFormName.elements.type)
{
case 'checkbox':
case 'radio':
document.forms.MyFormName.elements.checked===true ? blablasend+=document.forms.MyFormName.elements.name+'='+encodeURIComponent(document.forms.MyFormName.elements.value)+'&' : blablasend=blablasend;
break;
default:
document.forms.MyFormName.elements.value!=='' ? blablasend+=document.forms.MyFormName.elements.name+'='+encodeURIComponent(document.forms.MyFormName.elements.value)+'&' : blablasend=blablasend;
break;
}
}
blablabla;
}

P.S. MyFormName в данном случае заменить на radioform, ну и лишнее убрать.

У меня не работает.. Вызывать же в самом теге form onsubmit="formhandler()" ?

LH
На сайте с 26.09.2013
Offline
89
#3

var form = document.getElementById('form_name');

var el = form.elements;

for (var i = 0; i < el.length; i++) {

if(el.checked == 'false') {
console.log('Что-то пошло не так!');
return false;
}
}

A
На сайте с 30.06.2013
Offline
119
#4
Leonid H:
var form = document.getElementById('form_name');
var el = form.elements;

for (var i = 0; i < el.length; i++) {
if(el.checked == 'false') {
console.log('Что-то пошло не так!');
return false;
}
}

Или я что-т делаю не так или этот код не рабочий...

Вызывать так?


<form action="result.php" method="POST" name="radioform" onsubmit="checkRadio()" >


function checkRadio(){
var form = document.getElementById('radioform');
var el = form.elements;

for (var i = 0; i < el.length; i++) {
if(el.checked == 'false') {
console.log('Что-то пошло не так!');
return false;
}
}
}
LH
На сайте с 26.09.2013
Offline
89
#5
alexdosson:
Или я что-т делаю не так или этот код не рабочий...

Да. Форме нужно назначить id, и указать в ('form_name');

Повесить на кнопку событие клик и прикрепить функцию.

При этом важно понимать, что в форме у вас только инпуты -> радио, а кнопку -> сабмит вынести ЗА ФОРМУ.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий