Помогите настроить скрипт проверки Батонов и текстовых инпутов
Никак не получается настроить скрипт проверки заполнены ли все поля и выбраны ли параметры по радио баттонам работает либо то либо другое.
сам 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, время: 06:16. |