Показать сообщение отдельно
  #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.
Ответить с цитированием