выполнение скрипта останавливается после первого оператора
Сабж.
Есть HTML страница с формой: <FORM method="POST" name="addrepform" action="./add_rep.php" onsubmit="return CheckForm();"> <b>Заголовок объявления *</b><br> <INPUT type="text" name="title" maxlength="100" value=""> <b>Раздел каталога *</b><br> <select name="cat_id"> <option value="0">(выберите раздел)</option> <option value="1">Раздел 1</option> </select> <b>Ваш пол *</b><br> <select name="sex"> <option value="0">(Выберите)</option> <option value="1">Мужской</option> <option value="2">Женский</option> </select> <b>Ваша дата рождения *</b><br> <select name="rojd_dd"> <option value="0">(День)</option> <option value="1">1</option> </select> <select name="rojd_mm"> <option value="0">(Месяц)</option> <option value="1">1</option> </select> <select name="rojd_yyyy"> <option value="0">(Год)</option> <option value="2013">2013</option> </select> </FORM> подключен скрипт проверки на JS: function CheckForm() { // =========== 1. Проверка заполнения ЗАГОЛОВОК ОБЪЯВЛЕНИЯ p_title=document.addrepform.title.value.toString(); if ((p_title.length==0) || (p_title=='Репетитор по ') ) { alert('Не заполнено поле \"Заголовок объявления\".'); document.addrepform.title.focus(); return false; } else if (p_title.length<5) { alert('Значение поля \"Заголовок объявления\" не должно быть короче 5 символов.'); document.addrepform.title.focus(); return false; }; // =========== 2. Проверка заполнения РАЗДЕЛ КАТАЛОГА p_cat_id=document.addrepform.cat_id.value; if (p_cat_id==0) { alert('Не заполнено поле \"Раздел каталога\".'); document.addrepform.cat_id.focus(); return false; }; // =========== 3. Проверка заполнения ВАШ ПОЛ p_sex=document.addrepform.sex.value; if (p_sex==0) { alert('Не заполнено поле \"Ваш пол\".'); document.addrepform.sex.focus(); return false; }; // =========== 4. Проверка заполнения ВАША ДАТА РОЖДЕНИЯ p_rojd_dd=document.addrepform.rojd_dd.value; p_rojd_mm=document.addrepform.rojd_mm.value; p_rojd_yyyy=document.addrepform.rojd_yyyy.value; if ( (p_rojd_dd==0) || (p_rojd_mm==0) || (p_rojd_yyyy==0) ){ alert('Не заполнено либо неверно заполнено поле \"Ваша дата рождения\".'); document.addrepform.p_rojd_dd.focus(); return false; }; return true; }; Почему-то после вывода алерта по Дате рождения происходит отправка самой формы (хотя должно быть возвращено false), т.е. по сути выполняется только первый оператор внутри условия if {} - т.е. выводится только алерт, а дальше буд-то бы выход из процедуры с true.... |
Короче сам разобрался уже :write:
Оказывается просто ошибка в строке установки фокуса (следствие копипасты). Было написано: document.addrepform.p_rojd_dd.focus(); Правильно так: document.addrepform.rojd_dd.focus(); Ибо имя поля другое (т.е. такого имени вообще не было), поэтому, видимо, и выскакивало из тела оператора if и шпарило дальше, возвращая true вместо верного false )))) |
Часовой пояс GMT +3, время: 03:49. |