Javascript.RU

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

Validation script
Я написала простой скрипт, где пользовательбкогда заполняет форму правильноб переходит на другую страницу, иначе выводится сообщение об ошибке в заполнении формы. Однако же, новая страницабнесмотря на мои старания, открывается всегда.
Буду признательна за подсказку.

<!DOCTYPE html>
<html>
	<head>
	
		
		<script type = "text/javascript">
		
				function overallcheck ()
			{
				if(!checkjob()|| !checkEmail()|| !Checkname())
				{writeTo("problemArea","Error messages area");
				return false;
				}
				if(!Checkname())
				{writeTo("problemArea","Please inser a valid name");
				return false;
				}
				if(!checkEmail())
				{writeTo("problemArea","Please inser a valid email");
				return false;
				}
				if(!checkjob())
				{
				writeTo("problemArea","Please inser your job");
				return false;
				}
				else {
				return true;
}
			}
			function Checkname(){
				clearElement("problemArea");
				var fullname = document.forms['form'].fullname.value;
				if (fullname.length == 0 || !isNaN(fullname)) 
					return false;
				}
			function checkEmail(){
				clearElement("problemArea");
				var mail = document.forms['form'].Email.value;
				if (mail == '' || mail.indexOf('@') == -1 || mail.indexOf('.') == -1) 
					return false;}
			}
			function checkjob()
			{
				clearElement("problemArea");
				var i;
				for (i=0;i<4;i++)
				{
					if (document.forms['form'].job[i].checked) {return true;}
				}
				return false;
			}
			
		//--> 
		</script>

	</head>

	<body>


<form onsubmit="return overallcheck();" action="res.html" id=form target="_blank" method="GET">
			<table>
				
				<tr>
					<td><b><p>name</p></b> </td>
					<td> <input type="text" name="fullname"  size="20" placeholder="Enter a valid name"/> </td>
				</tr>
				
				<tr>
					<td><b><p> E-mail: </p></b></td> 
					<td><input type="email" name="Email" maxlength="15" size = "20" placeholder="Enter a valid email address"/> </td>
				</tr>
				
<tr>
<p><td><b><p>job?</p></b> <br/></td></p>
				<td>1<input type="radio" name="job" value="gov" /><br/>
				2 <input type="radio" name="job" value="pri" /><br/><div id="problemArea"> </div>
				3 <input type="radio" name="job" value="unem" /><br/>
                                4 <input type="radio" name="job" value="other" /><br/>
								
</td></tr>

			
			</table>
			<p>
				<button type="submit" onclick="" >submit</button>



			
		</form>
</body>
	
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 25.05.2015, 00:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Doraemon,
что такое
Сообщение от Doraemon
writeTo
и зачем
Сообщение от Doraemon
42 }
Ответить с цитированием
  #3 (permalink)  
Старый 25.05.2015, 00:24
Интересующийся
Отправить личное сообщение для Doraemon Посмотреть профиль Найти все сообщения от Doraemon
 
Регистрация: 24.05.2015
Сообщений: 10

WriteTo пишет сообщение об ошибке в поле для ошибок.
42 я что-то нигде не вижу...
Ответить с цитированием
  #4 (permalink)  
Старый 25.05.2015, 00:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Doraemon,
строка 42 там у вас фигурная скобка зачем ?
Сообщение от Doraemon
WriteTo пишет сообщение об ошибке в поле для ошибок.
где эта программа и куда она пишет?
Ответить с цитированием
  #5 (permalink)  
Старый 25.05.2015, 00:39
Интересующийся
Отправить личное сообщение для Doraemon Посмотреть профиль Найти все сообщения от Doraemon
 
Регистрация: 24.05.2015
Сообщений: 10

Спасибо! поправила скобку, но проблема осталась прежней.
Насчет поля для ошибок, см. строку 78.
Кои-какие неважные куски кода я убрала для краткости
Ответить с цитированием
  #6 (permalink)  
Старый 25.05.2015, 01:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Doraemon,
все функции проверки должны возвращать true если всё ок ,
как работают функции clearElement и writeTo известно только вам
Ответить с цитированием
  #7 (permalink)  
Старый 25.05.2015, 02:24
Интересующийся
Отправить личное сообщение для Doraemon Посмотреть профиль Найти все сообщения от Doraemon
 
Регистрация: 24.05.2015
Сообщений: 10

С ними все ок, поэтому я их опустила.
https://www.dropbox.com/s/i9pgy0v8dc...dache.rar?dl=0
здесь мой полный код.
Что интересно, сейчас, когда я кое-что исправила (к лучшему...), выдает ошибку всегда и не дает перейти на другую страницу.
Ответить с цитированием
  #8 (permalink)  
Старый 26.05.2015, 14:44
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Скорее всего overallcheck попросту вываливается где-то по ошибке, а ТС в консоль не догадается заглянуть.
Ответить с цитированием
  #9 (permalink)  
Старый 26.05.2015, 14:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от kostyanet
Скорее всего overallcheck попросту вываливается где-то по ошибке, а ТС в консоль не догадается заглянуть.
решение давно было подсказано
Сообщение от рони
все функции проверки должны возвращать true если всё ок
когда ТС добавит return true, проблема исчезнет . а вам как всегда лишь бы брякнуть.
Ответить с цитированием
  #10 (permalink)  
Старый 26.05.2015, 14:55
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Doraemon
Я написала простой скрипт
Это не простой скрипт. Вот такой вот простой:

var valid=function(el){
  var pat=el.getAttribute('pattern');
  if(!pat)
    return true;
  pat= new RegExp(pat);
/*
тут я не помню каким методом надо проверять, exec или test
в общем если проверка по шаблону не проканала, то
*/
   throw el.getAttribute('err');
 else
   return true;
};
try{
  for(var el,elems=form.elements;el=elems[i];i++)
     valid(el);
}
catch (e){
  problemArea.textContent=e;
  return false;
}


Таким образом на рендере формы вы забиваете атрибуты паттерн и ерр данными из модели формы.

Последний раз редактировалось kostyanet, 26.05.2015 в 14:58.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема совместного использования Masked Input и jQuery Validation spo jQuery 41 13.04.2016 16:10
jQuery навигация, утечка памяти Foxeh AJAX и COMET 8 19.04.2015 16:53
Требуется программист Java Script Дитрий Андрияшкин Работа 0 03.08.2011 21:44
Почему в FF не исполняется клонированный тэг script? NT Man Firefox/Mozilla 0 15.11.2009 16:00
HELP: Java Script Error: “text” is undefined Aram Khachaturyan Общие вопросы Javascript 2 11.04.2008 16:57