Помогите настроить скрипт проверки Батонов и текстовых инпутов
Никак не получается настроить скрипт проверки заполнены ли все поля и выбраны ли параметры по радио баттонам работает либо то либо другое.
сам html такой
<FORM name="form1" action="otch_zak.php?title=<?php echo $title; ?>" method=post onSubmit="javascript: return checkForm(this)">
<table class="form_zakaz" >
<tr class="ollcentr">
<td>
<div class="topzak">
<table cellspacing="10" class="toplistzak">
<tr>
<td>
<div class="td1"><?php echo $img_transf; ?></div>
</td>
<td valign="top" class="td2"><h2>
<?php echo $title_link; echo $title; ?></h2>
<p>Маршрут: <?php echo $marschr; ?></p>
</td>
</tr>
<tr>
<td colspan="2" class="td3">
<div id="d1">
<table cellspacing="0" class="infoprice">
<tr>
<td class="iprzak">цена чел. от</td>
<td class="iprzak">авто Бизнесс класс 1-6 пасс.</td>
<td class="iprzak">авто VIP класс 1-3 пасс.</td>
<td class="iprzak">продолжит.</td>
<td class="iprzak">период</td>
</tr>
<tr>
<td class="iprzak"><?php echo $price_1; ?> €</td>
<td class="iprzak">selectauto<?php echo $price_bus; ?> €<br><input name="selectauto" type="radio" value="1"></td>
<td class="iprzak"><?php echo $price_vip; ?> €<br><input name="selectauto" type="radio" value="2"></td>
<td class="iprzak"><?php echo $times; ?></td>
<td class="iprzak"><?php echo $periodoll; ?></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td>
<table cellspacing="5" class="form_zakaz2">
<tr>
<td colspan="2"><b>Укажите дату *</b> (если не знаете точную дату, укажите период)</b>
</td>
</tr>
<tr>
<td align="right"><p>с* <INPUT name="data1" class="date" maxlength=10 ></p></td>
<td align="left"><p>по <INPUT name="data2" class="date" maxlength=10 ></p></td>
</tr>
<tr>
<td class="left_form"><p><b>укажите количество пассажиров:*</b></p></td>
<td class="right_form"><select name="people" >
<option value="" selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</td>
</tr>
<tr>
<td align="right"><b>предлагать свободные места желающим*<br>воспользоваться этой услугой?</b><br>(в этом случае стоимость будет снижена за счет дополнительных пассажиров)</td>
<td align="left" valign="midle"><div id="d2"><INPUT name="free_place" type="radio" value="1">Да<input name="free_place" type="radio" value="2">Нет</div></td>
</tr>
<tr>
<td colspan="2"> <HR align=center width="650" color=gray noShade SIZE=1></td>
</tr>
<tr>
<td class="left_form">Ваше Имя:*</td>
<td class="right_form"><INPUT name="name" maxlength=20></td>
</tr>
<tr>
<td class="left_form">Фамилия:*</td>
<td class="right_form"> <INPUT name="fam" maxlength=30></td>
</tr>
<tr>
<td class="left_form">дата рождения (не обязательно):</td>
<td class="right_form"><INPUT name="birth" maxlength=30></td>
</tr>
<tr>
<td colspan="2"><HR align=center width="650" color=gray noShade SIZE=1></td>
</tr>
<tr>
<td class="left_form">Страна:*</td>
<td class="right_form"><input name="country" maxlength=50>
</td>
</tr>
<tr>
<td class="left_form">Область, край (не обязательно):</td>
<td class="right_form"><INPUT name="area" maxlength="100"></td>
</tr>
<tr>
<td class="left_form">Город:*</td>
<td class="right_form"><INPUT name="city" maxlength="50"></td>
</tr>
<tr>
<td class="left_form">улица, номер дома и кв.:</td>
<td class="right_form"><TEXTAREA name="addr" cols="20" rows="2" id="addr"></TEXTAREA></td>
</tr>
<tr>
<td class="left_form">e-Mail (для связи):*</td>
<td class="right_form"><INPUT name="email" maxlength=30></td>
</tr>
<tr>
<td class="left_form">телефон (для связи):*</td>
<td class="right_form"><INPUT name="phone" maxlength=15> </td>
</tr>
<tr>
<td align="left">Коментарий:</td>
<td></td>
</tr>
<tr>
<td class="ollcentr" colspan="2"><TEXTAREA class="inpkom" name="koment" cols="70" rows="10" id="koment"></TEXTAREA></td>
</tr>
</table>
<CENTER>
<h2><INPUT class="button_zak" type="submit" value="Отправить заявку"></h2>
<br>
</CENTER>
</td>
</tr>
</table>
</form>
в таблице куча полей которые нужно заполнить и 2 группы по 2 радио кнопки в каждой группе обязательно человек должен выбрать одно из двух сам скрипт проверки заполнения полей
function checkForm(f)
{
if((f.fam.value=="")||(f.name.value=="")||(f.city.value=="")||(f.country.value=="")||(f.data1.value=="")||(f.addr.value=="")||(f.email.value=="")||(f.phone.value=="")||(f.people.value=="")||(f.selectauto== "0"))
{
alert("Вы указали не всю информацию!!! Все поля, кроме отмеченные *, обязательны для заполнения!");
return false;
}
скрипт проверки баттонов
function checkForm(f){
if (chk('free_place') && chk('selectauto')){
document.getElementById('d1').style.display='none';
document.getElementById('d2').style.display='';
}
}
function chk(name){
var opt=document.getElementsByName(name);
for (var i=0; i<opt.length; i++)
if (opt[i].checked) return opt[i].value;
return false;
}
если скрипт проверки полей еще как-то более менее стабильно работает, то скрипт проверки радио баттонов вообще отказывается, а в паре они вообще не работают |
Garrys808,
тег формы вынесите за пределы таблицы/таблиц, второй тег формы где-то потерян, в таблице первой есть лишние теги, названия у функций совпадают, либо обьедините их содержимое , либо дайте разные имена. только после этого если незаработает, можно смотреть далее. id="d2" у вас пара, а id это уникальный номер |
Это я прозевал, просто страница разбита на несколько блоков которые подгружаются с других страниц, все исправил. Но результат пока тот же
|
С проверкой заполнения полей проблем нет, все отлично работает, а вот с проверкой радио баттонов никак, как только я этот скрипт подключаю перестает работать и проверка заполнения полей, ее просто ремлю оставляю одну проверку радио баттонов - она не работает.
|
Garrys808, посмотрите вариант.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<FORM name="form1" action="otch_zak.php?title=<?php echo $title; ?>" method=post onSubmit="javascript: return checkForm(this)">
<table class="form_zakaz" >
<tr class="ollcentr">
<td>
<div class="topzak">
<table cellspacing="10" class="toplistzak">
<tr>
<td>
<div class="td1"><?php echo $img_transf; ?></div>
</td>
<td valign="top" class="td2"><h2>
<?php echo $title_link; echo $title; ?></h2>
<p>Маршрут: <?php echo $marschr; ?></p>
</td>
</tr>
<tr>
<td colspan="2" class="td3">
<div id="d1">
<table cellspacing="0" class="infoprice">
<tr>
<td class="iprzak">цена чел. от</td>
<td class="iprzak">авто Бизнесс класс 1-6 пасс.</td>
<td class="iprzak">авто VIP класс 1-3 пасс.</td>
<td class="iprzak">продолжит.</td>
<td class="iprzak">период</td>
</tr>
<tr>
<td class="iprzak"><?php echo $price_1; ?> €</td>
<td class="iprzak">selectauto<?php echo $price_bus; ?> €<br><input name="selectauto" type="radio" value="1"></td>
<td class="iprzak"><?php echo $price_vip; ?> €<br><input name="selectauto" type="radio" value="2"></td>
<td class="iprzak"><?php echo $times; ?></td>
<td class="iprzak"><?php echo $periodoll; ?></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td>
<table cellspacing="5" class="form_zakaz2">
<tr>
<td colspan="2"><b>Укажите дату *</b> (если не знаете точную дату, укажите период)</b>
</td>
</tr>
<tr>
<td align="right"><p>с* <INPUT name="data1" class="date" maxlength=10 ></p></td>
<td align="left"><p>по <INPUT name="data2" class="date" maxlength=10 ></p></td>
</tr>
<tr>
<td class="left_form"><p><b>укажите количество пассажиров:*</b></p></td>
<td class="right_form"><select name="people" >
<option value="" selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</td>
</tr>
<tr>
<td align="right"><b>предлагать свободные места желающим*<br>воспользоваться этой услугой?</b><br>(в этом случае стоимость будет снижена за счет дополнительных пассажиров)</td>
<td align="left" valign="midle"><div id="d2"><INPUT name="free_place" type="radio" value="1">Да<input name="free_place" type="radio" value="2">Нет</div></td>
</tr>
<tr>
<td colspan="2"> <HR align=center width="650" color=gray noShade SIZE=1></td>
</tr>
<tr>
<td class="left_form">Ваше Имя:*</td>
<td class="right_form"><INPUT name="name" maxlength=20></td>
</tr>
<tr>
<td class="left_form">Фамилия:*</td>
<td class="right_form"> <INPUT name="fam" maxlength=30></td>
</tr>
<tr>
<td class="left_form">дата рождения (не обязательно):</td>
<td class="right_form"><INPUT name="birth" maxlength=30></td>
</tr>
<tr>
<td colspan="2"><HR align=center width="650" color=gray noShade SIZE=1></td>
</tr>
<tr>
<td class="left_form">Страна:*</td>
<td class="right_form"><input name="country" maxlength=50>
</td>
</tr>
<tr>
<td class="left_form">Область, край (не обязательно):</td>
<td class="right_form"><INPUT name="area" maxlength="100"></td>
</tr>
<tr>
<td class="left_form">Город:*</td>
<td class="right_form"><INPUT name="city" maxlength="50"></td>
</tr>
<tr>
<td class="left_form">улица, номер дома и кв.:</td>
<td class="right_form"><TEXTAREA name="addr" cols="20" rows="2" id="addr"></TEXTAREA></td>
</tr>
<tr>
<td class="left_form">e-Mail (для связи):*</td>
<td class="right_form"><INPUT name="email" maxlength=30></td>
</tr>
<tr>
<td class="left_form">телефон (для связи):*</td>
<td class="right_form"><INPUT name="phone" maxlength=15> </td>
</tr>
<tr>
<td align="left">Коментарий:</td>
<td></td>
</tr>
<tr>
<td class="ollcentr" colspan="2"><TEXTAREA class="inpkom" name="koment" cols="70" rows="10" id="koment"></TEXTAREA></td>
</tr>
</table>
<CENTER>
<h2><INPUT class="button_zak" type="submit" value="Отправить заявку"></h2>
<br>
</CENTER>
</td>
</tr>
</table>
</form>
<script language="JavaScript" type="text/javascript">
function checkForm(f){
if((f.fam.value=="")||(f.name.value=="")||(f.city.value=="")||(f.country.value=="")||(f.data1.value=="")||(f.addr.value=="")||(f.email.value=="")||(f.phone.value=="")||(f.people.value=="")||(f.selectauto== "0"))
{
alert("Вы указали не всю информацию!!! Все поля, кроме отмеченные *, обязательны для заполнения!");}
if (chk('free_place') && chk('selectauto')){
document.getElementById('d1').style.display='none';
document.getElementById('d2').style.display='';
}
return false;
}
function chk(name){
var opt=document.getElementsByName(name);
if (opt[1].checked) return true;
return false
}
</script>
</body>
</html>
|
function checkForm(f){
if (chk('free_place') && chk('selectauto')){ document.getElementById('d1').style.display='none' ; document.getElementById('d2').style.display=''; } } эту часть скрипта с переключением я совсем убрал |
Garrys808,
Сформулируйте чего нехватает? или уже всё есть? |
не работает скрипт
сейчас я убрал весь скрипт и оставил только эту часть чтобы убедится работает проверка радио батонов или нет
function chk(name){
var opt=document.getElementsByName(name);
for (var i=0; i<opt.length; i++)
if (opt[i].checked) return opt[i].value;
return false;
}
но она к сожалению не работает |
Garrys808,
работает ваш скрипт, может уточните что он по вашему должен делать но не делает? |
у меня на странице поля для заполнения заявки они заполняются текстом и есть 2 группы в каждой из которых нужно выбрать только либо ту либо другую опцию. Так вот скрипт должен проверять выбрана ли какая либо из опций в обеих группах
|
| Часовой пояс GMT +3, время: 07:50. |