Валидация формы
Имеется форма:
<form action="result.php" method="post" onsubmit="return checkForm(this)">
<table align="center" cellpadding="3" >
<tr>
<td><strong>ФИО:</strong></td>
<td><input size="52" type="text" name="name" id="name" value="" /></td>
<td>*</td>
</tr>
<tr>
<td><strong>Телефон:</strong></td>
<td><input size="52" type="text" name="tel" id="tel" value="" /></td>
<td>*</td>
</tr>
<tr>
<td><strong>E-mail: </strong></td>
<td><input size="52" type="text" name="email" id="email" value="" /></td>
<td>*</td>
</tr>
<tr>
<td valign="top" width="150"><strong>Сообщение:</strong></td>
<td><textarea name="text" cols="40" rows="10"></textarea></td>
<td valign="top">*</td>
</tr>
<tr>
<td><font color="#c9c9c9"><strong>участие</strong></font></td>
</tr>
<tr>
<td>
<div id="tr"><input type="radio" name="training" value="yes" />да<br />
<input type="radio" name="training" value="no" />нет</div>
</td>
</tr>
<tr>
<td><font color="#c9c9c9"><strong>даты</strong></font></td>
</tr>
<tr>
<td>
<div id="ar"><input type="radio" name="arrive" value="10" />10 февраля<br />
<input type="radio" name="arrive" value="11" />11 февраля</div>
</td>
</tr>
<tr>
<td>
<div id="gf"><input type="radio" name="get_off" value="11" />11 февраля<br />
<input type="radio" name="get_off" value="12" />12 февраля</div>
</td>
</tr>
<tr>
<td colspan="3" align="center">
<input type="submit" name="do" value="Отправить" />
</td>
</tr>
</table>
</form>
и вот такая функия:
function checkForm(f) {
var retVal = true;
var fields = ['name', 'tel', 'email', 'text'];
for (var i = 0; i < fields.length; i++) {
f[fields[i]].className = '';
if (f[fields[i]].value == '')
{
f[fields[i]].className = 'error';
retVal = false;
}
}
if (!f['email'].value.match("^([a-z,._,0-9])+@([a-z,._,0-9])+(.([a-z])+)+$"))
{
f['email'].className = 'error';
retVal = false;
}
return retVal;
}
Не могу связать эту функцию с проверкой еще и нажатия радиокнопок. То есть если не нажаты радиокнопки нужна тоже подцветка. Как это реализовать? |
Или вот у меня каждый блок радио кнопок заключен в дивы. Как сделать вот как: если инпуты конкретного дива не содержат чеккед, то фон дива цветом, ну и так для всех.
|
в хтмле добавь class такой же как и name
<input type="radio" class="training" name="training" value="yes" />да<br /> <input type="radio" class="training" name="training" value="no" />нет</div> <input type="radio" class="arrive" name="arrive" value="10" /> <input type="radio" class="arrive" name="arrive" value="11" /> <input type="radio" class="get_off" name="get_off" value="11" /> <input type="radio" class="get_off" name="get_off" value="12" /> в функции в низ добавь это
var Arr=new Array()
Arr[0]='training'
Arr[1]='arrive'
Arr[2]='get_off'
var total=Arr.length
var count=0
for(var j=0; j<Arr.length; j++){
var a=document.getElementsByClassName(Arr[j])
for(var i=0; i<a.length; i++){
if(a[i].checked==true){count++}
}
}
if(count!=total){retVal=false} else {retVal=true}
|
| Часовой пояс GMT +3, время: 18:05. |