Javascript.RU

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

Помогите разобраться с проверкой полей.
Написал код из примера книги Робина Никсона "Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5"(3-е изд.)

Сам код вот:

<!DOCTYPE html>
<html>
	<head>
		<title>Check form</title>
		<style>
			.signup {
				border: 1px solid #999999;
				font: normal 14px helvetica;
				color: #444444;
				}
		</style>
		
		<script>
			function validate(form) {
			fail = validateForename(form.forename.value)
			fail += validateSurname(form.surename.value)
			fail += validateUsername(form.username.value)
			fail += validatePassword(form.password.value)
			fail += validateAge(form.age.value)
			fail += validateEmail(form.email.value)
			if(fail == "") return true
			else {alert(fail); return false}
			}
			
			function validateForename(field)
			{
				return (field == "") ? "Not see forename. \n" : ""	
			}
			
			function validateSurename(field)
			{
				return (field == "") ? "Not see surename. \n" : ""	
			}
			
			function validateUsername(field)
			{
				if(field == "") return "Not see username. \n"
				else if(field.lenght < 5) return "Username are very small.\n"
				else if(/[^a-zA-Z0-9_-]/.test(field)) return "In Username have been only a-z, A-Z, 0-9, - and _. \n"
				return ""
			}
			
			function validatePassword(field)
			{
				if(field == "") return "Not see password. \n"
				else if(field.length < 6) return "Password must be more 6 symbol. \n"
				else if(!/[a-z]/.test(field) || !/[A-Z]/.test(field) || !/[0-9]/.test(field)) return "Password needs 1 symbol from a-z, A-Z and 0-9. \n"
				return ""
			}
			
			function validateAge(field)
			{
				if(isNaN(field)) return "Not see Age. \n"
				else if(field < 18 || field > 110) return "Age must be between 18 and 110. \n"
				return ""
			}
			
			function validateEmail(field)
			{
				if (field == "") return "Not see E-mail adress. \n"
				else if(!((field.indexOf(".") > 0) && (field.indexOf("@") >0)) || /[^a-zA-Z0-9.@_-]/.test(field)) return "E-mail has wrong. \n"
				return ""	
			}
		</script>
	</head>
	<body>
	
		<table class="signup" border="0" cellpadding="2" cellspacing="5" bgcolor="#eeeeee">
			<form method="post" action="validate.html" onSubmit="return validate(this)">
			<tr><td>Name</td><td><input type="text" maxlenght="32" name="forename"></td></tr>
			<tr><td>Surename</td><td><input type="text" maxlenght="32" name="surename"></td></tr>
			<tr><td>Username</td><td><input type="text" maxlenght="16" name="username"></td></tr>
			<tr><td>Password</td><td><input type="text" maxlenght="12" name="password"></td></tr>
			<tr><td>Age</td><td><input type="text" maxlenght="3" name="age"></td></tr>
			<tr><td>E-Mail</td><td><input type="text" maxlenght="64" name="email"></td></tr>
			<tr><td colspan="2" align="center">
			<input type="submit" value="Register"></td></tr>
			</form>
		</table>
	</body>
</html>


По идее он должен проверять и в случае любых недопустимых символов вызывать окно-предупреждение, но это не происходит даже с всеми пустыми полями. В чем может быть проблема? Подскажите пожалуйста, сам разобраться не смог. Заранее спасибо.

Последний раз редактировалось Denver23, 11.10.2016 в 20:00.
Ответить с цитированием
  #2 (permalink)  
Старый 11.10.2016, 19:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 11.10.2016, 20:36
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Кто запретил смотреть в консоль?

validateSurname != validateSurename

line 16. С какого хера surEname? surname же всегда было. А, типа sure-name - уверенное имя, лол.
Ответить с цитированием
  #4 (permalink)  
Старый 11.10.2016, 20:57
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Denver23, передай товарищу Никсону что верстает он неправильно, правильно так <form><table>...</table></form>
Ответить с цитированием
  #5 (permalink)  
Старый 11.10.2016, 21:07
Новичок на форуме
Отправить личное сообщение для Denver23 Посмотреть профиль Найти все сообщения от Denver23
 
Регистрация: 11.10.2016
Сообщений: 5

Сообщение от warren buffet Посмотреть сообщение
Кто запретил смотреть в консоль?
Спасибо большое за помощь. Действительно ошибка из за моей невнимательности. Я читал про дополнение Firebug для Firefox, но в консоли ничего не было или я что-то не так сделал. Подскажите если знаете как в Хроме можно смотреть.(Я только начинаю, вот и допускаю подобные ошибки)
Ответить с цитированием
  #6 (permalink)  
Старый 11.10.2016, 21:10
Новичок на форуме
Отправить личное сообщение для Denver23 Посмотреть профиль Найти все сообщения от Denver23
 
Регистрация: 11.10.2016
Сообщений: 5

А разве это правило нарушает правило вложенности тегов? Или это общее какое-то правило?
P.S. Спасибо, я учту.
Ответить с цитированием
  #7 (permalink)  
Старый 11.10.2016, 21:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Denver23,
https://learn.javascript.ru/devtools
Ответить с цитированием
  #8 (permalink)  
Старый 11.10.2016, 21:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Denver23,
среди тегов таблицы нет тега формы, в лучшем случае браузер переместит форму куда надо из "каши тегов", но может и не угадать ваших желаний.
Ответить с цитированием
  #9 (permalink)  
Старый 11.10.2016, 21:16
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от Denver23 Посмотреть сообщение
А разве это правило нарушает правило вложенности тегов?
Да, в таблице не табличные теги нужно вкладывать только в ячейки (td/th) либо саму таблицу куда-нибудь вложить, таблицы браузер обрабатывает особым образом.

Последний раз редактировалось Rise, 11.10.2016 в 21:21.
Ответить с цитированием
  #10 (permalink)  
Старый 12.10.2016, 01:09
Новичок на форуме
Отправить личное сообщение для Denver23 Посмотреть профиль Найти все сообщения от Denver23
 
Регистрация: 11.10.2016
Сообщений: 5

Спасибо ещё раз, у меня Firebug не показывал ошибки потому что я его неправильно запускал, сделал по Вашей ссылке и всё заработало.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите разобраться с this uroboros7 jQuery 4 02.01.2015 00:56
Помогите разобраться с калькулятором Maksim858 Ваши сайты и скрипты 1 27.12.2014 13:23
Помогите пожалуйста девушке разобраться Feni4ka jQuery 10 26.04.2011 19:25
Помогите пожалуйста разобраться Kupu4 Ваши сайты и скрипты 0 21.01.2010 10:44
Помогите разобраться с галереей IMAGIN yana_studio Общие вопросы Javascript 4 12.12.2009 17:24