Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.05.2011, 10:25
Интересующийся
Отправить личное сообщение для Nitro_Generate Посмотреть профиль Найти все сообщения от Nitro_Generate
 
Регистрация: 14.04.2011
Сообщений: 20

Проверка полей
Всем доброго времени суток. Сразу с кажу, что в JS я не сильно силен, собственно по этому и прошу вашей помощи =)
И так я описываю скрипт проверки формы на заполнения.
Сама форма :
<form action="....." method="post" enctype="multipart/form-data" name="add_form" onsubmit="return check_fields();">

отработка JSом:
function check_fields(){obs='document.add_form.';
s='zagolovok';		ob=eval(obs+s);value=ob.value;if(value==''){ob.focus();ob.className="err";return false;}
else ob.className="";

s='hide_phone';		ob=eval(obs+s);value=ob.value;if(value=='1'){
	s='contacts';		ob=eval(obs+s);value=ob.value;if(value==''){ob.focus();ob.className="err";return false;}
}
else ob.className="";

s='type';		
ob=eval(obs+s);
value=ob.value;
if(value=='0'){ob.focus();ob.className="err";return false;}
else ob.className="";
s='id_category';
ob=eval(obs+s);
value=ob.value;
if(value=='no'){ob.focus();ob.className="err";return false;}
else ob.className="";
s='text';		
ob=eval(obs+s);
value=ob.value;
if(value==''){ob.focus();ob.className="err";return false;}
else ob.className="";
s='video';		
ob=eval(obs+s);
value=ob.value;
   if(value!=''){
   var valid_str=value.match(/youtube\.com\/watch\?v\=[0-9a-z-_]{11}/gi);
   var valid_length=value.length;
   if(valid_str===null || valid_str=='undefined' || valid_str=='' || valid_length>50 || valid_length<24){
      alert('Link to video is not correct');
      ob.focus();
      ob.className="err";
      valid_str='';
      return false;
}
else ob.className="";
}
s='autor';
ob=eval(obs+s);
value=ob.value;
if(value==''){ob.focus();ob.className="err";return false;}
else ob.className="";
s='securityCode';
ob=eval(obs+s);
if(ob){value=ob.value;if(value==''){ob.focus();ob.className="err";return false;}
else ob.className="";}
return true;}

Все бы нечего, но не работает проверка чекбокса и текстового поля.
(hide_phone и contacts) задача такова:
При подтверждении проверяем JSом: Если человек прячет телефон(ставит галочку) то делаем проверку текстового поля, если поле пустое, то выделяем его. Если нет, то пропускаем.
код чекбокса:
<input type="checkbox" name="hide_phone" value="1" />

В условии JSа написано if(value=='1')... такое ощущение, что чекбокс всегда отправляет значение 1, ставь его, не ставь, все время выделяем поле контакты. Если в JS выставить не 1, а любое другое, то пропускает.
И так собственно вопрос, в чем косяк ?
Целое утро бьюсь...
Ответить с цитированием
  #2 (permalink)  
Старый 30.05.2011, 11:22
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

Во-первых, eval - это зло, во-вторых использование переменных без var(т.е. как глобальные тоже зло).
var obs = document.add_form;
var ob = obs[s];

Для проверки чекбокса нужно использовать
if ( ob.checked ) {//чекбокс отмечен

} else {

}
Ответить с цитированием
  #3 (permalink)  
Старый 30.05.2011, 11:43
Интересующийся
Отправить личное сообщение для Nitro_Generate Посмотреть профиль Найти все сообщения от Nitro_Generate
 
Регистрация: 14.04.2011
Сообщений: 20

Спасибо работает.
Но хотелось бы разобраться. Почему ob.checked, а не value=='1', было бы ясно, если бы у меня в коде чекбокса не стояло value="1",
но ведь оно стоит, и бокс должен передавать еденицу при выборе.
Ответить с цитированием
  #4 (permalink)  
Старый 30.05.2011, 12:09
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от Nitro_Generate
Почему ob.checked, а не value=='1',
Потому как основное назначение чекбокса вкл/выкл, а не какие-то конкретные цифровые значения...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка полей на форме alex_89 Общие вопросы Javascript 2 13.05.2011 14:12
проверка формы на изменение полей, кроме одного! cmygeHm ExtJS 14 13.04.2011 18:27
Проверка полей отправляемой формы. denisOgr jQuery 6 18.10.2010 19:40
Проверка полей формы Qwe2Qwe Общие вопросы Javascript 7 27.02.2010 19:43
проверка полей формы!!!! DENAT Общие вопросы Javascript 0 05.06.2008 22:14