|
|
|
| Пишу сейчас анкету на PHP, возникла задача - нужно проверить на JS, выбран ли для каждого вопроса (n-е кол-во, берутся из базы) хотя бы один вариант ответа (минимум 2, максимум n). Все радио-кнопки находятся в одной форме с именем theForm. Имена радиокнопок - массив, ключом которого служит ID текущего вопроса, а значения - ID ответов. Пример:
<form action="/anketa.php" method="post" name="theform">
<table align="center" cellspacing="2" cellpadding="0" border="0" width="500">
<tr>
<td colspan="3" class="question">Вопрос</td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" type="Radio" name="questid[1]" value="1"></td>
<td class="answer">Ответ 1</td>
<td width="125"> </td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" type="Radio" name="questid[1]" value="2"></td>
<td class="answer">Ответ 2</td>
<td width="125"> </td>
</tr></table><br>
...
<table align="center" cellspacing="2" cellpadding="0" border="0" width="500">
<tr>
<td colspan="3" class="question">Вопрос 2</td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" type="Radio" name="questid[2]" value="3"></td>
<td class="answer">Ответ 1</td>
<td width="125"> </td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" type="Radio" name="questid[2]" value="4"></td>
<td class="answer">Ответ 2</td>
<td width="125"> </td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" type="Radio" name="questid[2]" value="5"></td>
<td class="answer">Ответ 3</td>
<td width="125"> </td>
</tr></table><br>
<div align="center"><input type="Button" onclick="checkall()" value="Отправить"></div>
</form>
|
Выручайте :) | |
|
|
|
|
|
|
|
для: DDK
(13.01.2006 в 15:47)
| |
<script>checkall=function(){
j=0; for(i=0;i<theform.elements.length;i++)if(theform.elements(i).checked)j++;
alert(j);
}
</script>
|
| |
|
|
|
|
|
|
|
для: 12345
(13.01.2006 в 17:33)
| | На будущее: Я решил проблему весьма просто и хитро, PHP-скриптом раздал каждому радио-батону ID в духе a1,a2...an, а при генеоации страницы передал яваскрипту общее кол-во вопросов и радио-кнопок. Проверяю, сколько всего радио-кнопок отмечено и если меньше, чем общее кол-во вопросов, то выдаю алерт. Вот такой скрипт:
<form action="/anketa.php" method="post" name="theform">
<table align="center" cellspacing="2" cellpadding="2" border="0" width="500">
<tr>
<td colspan="3" class="question" style="padding-bottom: 10px;"><strong>Вопрос 1</strong></td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" id="a0" type="Radio" name="questid[1]" value="1"></td>
<td class="maintext"><label for="a0">ответ 1</label></td>
<td width="125"> </td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" id="a1" type="Radio" name="questid[1]" value="2"></td>
<td class="maintext"><label for="a1">ответ 2</label></td>
<td width="125"> </td>
</tr><tr>
<td align="right" width="125">
<input class="radiobutton" onclick="document.getElementById('b2').focus();" id="a2" type="Radio" name="questid[1]" value="other"></td>
<td class="maintext"><label for="a2">Другое (ответ 3)</label></td>
<td width="125"> </td>
</tr><tr>
<td align="right" width="125"> </td>
<td class="maintext">
<input type="Text" name="otherans[1]" id="b2" maxlength="150" size="30"></td>
<td width="125"> </td>
</tr></table><br><table align="center" cellspacing="2" cellpadding="2" border="0" width="500">
<tr>
<td colspan="3" class="question" style="padding-bottom: 10px;"><strong>2. Статьи какого плана вы хотели бы видеть в большем количестве в наступившем году ?</strong></td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" id="a3" type="Radio" name="questid[2]" value="3"></td>
<td class="maintext"><label for="a3">ответ 1</label></td>
<td width="125"> </td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" id="a4" type="Radio" name="questid[2]" value="4"></td>
<td class="maintext"><label for="a4">ответ 2</label></td>
<td width="125"> </td>
</tr><tr>
<td align="right" width="125">
<input class="radiobutton" onclick="document.getElementById('b5').focus();" id="a5" type="Radio" name="questid[2]" value="other"></td>
<td class="maintext"><label for="a5">Другое (ответ 3)</label></td>
<td width="125"> </td>
</tr><tr>
<td align="right" width="125"> </td>
<td class="maintext">
<input type="Text" name="otherans[2]" id="b5" maxlength="150" size="30"></td>
<td width="125"> </td>
</tr></table><br><div align="center"><input type="Button" onclick="checkall()" value="Отправить анкету"></div>
</form>
<script language='JavaScript'>
var totalrb = 6; // кол-во радиокнопок в анкете
var totalqs = 2; // уол-во вопросов в анкете
var chcnt = 0;
function checkall() {
for(i=0; i < totalrb; i++) {
obj = document.getElementById('a'+i);
if(obj.value==true) {
chcnt++;
}}
if(chcnt < totalqs) {
alert('Заполните пожалуйста всю анкету !');
} else {
document.theform.submit();
}}
</script>
|
Вот так всё оказалось просто :) | |
|
|
|