Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.01.2014, 02:09
Новичок на форуме
Отправить личное сообщение для Turboworld Посмотреть профиль Найти все сообщения от Turboworld
 
Регистрация: 09.01.2014
Сообщений: 2

выполнение скрипта останавливается после первого оператора
Сабж.

Есть 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....
Ответить с цитированием
  #2 (permalink)  
Старый 09.01.2014, 02:17
Новичок на форуме
Отправить личное сообщение для Turboworld Посмотреть профиль Найти все сообщения от Turboworld
 
Регистрация: 09.01.2014
Сообщений: 2

Короче сам разобрался уже
Оказывается просто ошибка в строке установки фокуса (следствие копипасты).

Было написано:
document.addrepform.p_rojd_dd.focus();

Правильно так:
document.addrepform.rojd_dd.focus();

Ибо имя поля другое (т.е. такого имени вообще не было), поэтому, видимо, и выскакивало из тела оператора if и шпарило дальше, возвращая true вместо верного false ))))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнение проверки после наступления события juggalo Events/DOM/Window 6 06.10.2012 01:37
Как обнулить переменные после завершения скрипта QRS jQuery 3 07.07.2010 03:08
После первого действия скрипт перестает работать cyberx jQuery 6 12.06.2010 22:04
добавить к после отработки скрипта показ модалпопапа roman2 Работа 0 09.08.2009 22:48
как прекратить выполнение скрипта ? kefi Общие вопросы Javascript 3 31.03.2009 19:05