|
01.07.2016, 13:22
|
Аспирант
|
|
Регистрация: 27.06.2016
Сообщений: 68
|
|
как правильно сделать валидацию?
не работает корректно, а добавить проверку на другие формы, так вообще ничего не работает
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="css/reset.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>Watch</title>
</head>
<body>
<form name="add">
<p>Введите имя:</p>
<input id="name" type="text">
<p>Введите фамилию:</p>
<input id="surname" type="text">
<p>Введите возраст:</p>
<input id="age" type="text">
<p>Введите свой email:</p>
<input id="email" type="text">
<p>Введите свой пол:</p>
<input id="gender" type="text">
<input id="addForm" type="submit" value="Отправить">
</form>
<p id="result"></p>
<script>
var form = document.forms.add;
form.onsubmit = function(e) {
e.preventDefault();
var result;
function age() {
var number;
number = document.getElementById("age").value;
if (isNaN(number) || number < 1 || number > 99) {
result = "Неверный возраст";
} else {
result = " ";
}
document.getElementById('result').innerHTML = result;
}
age();
this.submit();
}
</script>
</body>
</html>
|
|
01.07.2016, 13:27
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
number < 1 || number > 99 - то есть, если годовалый ребенок пишет, то все в норме, а если 9 месячный, то не умеет писать, и аксакал за 100 лет не имеет права?
|
|
01.07.2016, 13:29
|
Аспирант
|
|
Регистрация: 27.06.2016
Сообщений: 68
|
|
laimas,
ну это просто пример, к этому придира ться не стоит
|
|
01.07.2016, 13:30
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,124
|
|
Sokoljr,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="css/reset.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>Watch</title>
</head>
<body>
<form name="add">
<p>Введите имя:</p>
<input id="name" type="text">
<p>Введите фамилию:</p>
<input id="surname" type="text">
<p>Введите возраст:</p>
<input id="age" type="text">
<p>Введите свой email:</p>
<input id="email" type="text">
<p>Введите свой пол:</p>
<input id="gender" type="text">
<input id="addForm" type="submit" value="Отправить">
</form>
<p id="result"></p>
<script>
var form = document.forms.add;
form.onsubmit = age
function age() {
var number, result;
number = +document.getElementById("age").value;
if (isNaN(number) || number < 1 || number > 99) {
result = "Неверный возраст";
document.getElementById('result').innerHTML = result; }
return !result
}
</script>
</body>
</html>
Последний раз редактировалось рони, 01.07.2016 в 13:57.
|
|
01.07.2016, 13:35
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Я не придираюсь, просто без улыбки такие условия читать невозможно. )
А чтобы обработчик работал для всех форм, нужно повесить его на каждую форму, то есть обойти их циклом и назначить для события onsubmit.
|
|
01.07.2016, 13:52
|
Аспирант
|
|
Регистрация: 27.06.2016
Сообщений: 68
|
|
рони,
Корректно работать не будет, там выскакивает undefind постоянно
|
|
01.07.2016, 13:54
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,124
|
|
Сообщение от Sokoljr
|
Корректно работать не будет, там выскакивает undefind постоянно
|
не понимаю вас
|
|
01.07.2016, 13:55
|
Аспирант
|
|
Регистрация: 27.06.2016
Сообщений: 68
|
|
рони,
при нажатии на кнопку, с условием что введен верный возраст, будет выскакивать undefind в диве с result на какие то доли секунды
|
|
01.07.2016, 13:57
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,124
|
|
Sokoljr,
убрал
|
|
01.07.2016, 14:04
|
Аспирант
|
|
Регистрация: 27.06.2016
Сообщений: 68
|
|
рони,
спасибо
|
|
|
|