Я новичок: делаю форму обработки, но она не работает корректно.
Вложений: 1
Идея такова: при отправке формы незаполненные поля или не правильно заполненные должны отображаться красным цветом и выводится справа tooltip с правилом: введите имя, введите пароль, введите телефон. Иначе, если все правильно - то поля зеленные и все ок.
А происходит все так: заполнены поля или нет, все отображается зеленным. tooltip не отображается. Форма на Bootstrap 3. :help: Я только начал изучать Js поэтому обращаюсь за помощью к знающим людям. Спасибо. |
<form action="javascript:void alert('Форма отправлена!')">
<input placeholder="Имя" type="text" title="Укажите ваше имя (не менее двух букв)" required pattern="[а-яА-ЯёЁ]{2,128}" />
<input placeholder="Телефон" type="tel" title=" Укажите номер телефона (от 5 до 13 цифр)" required pattern="[0-9]{5,13}" />
<button type="submit">Отправить</button>
</form>
Работает в новых браузерах. Для старых есть костыль. |
Это да, работает, спасибо, но у меня форма на Bootstrap, и ошибка в ней...
Хочу разобраться, ведь все правильно как будто делал, но..
(function () {
var app = {
initialize: function () {
this.modules();
this.setUpListeners();
},
modules: function () {
},
setUpListeners: function () {
$('form').on('submit', app.submitForm);
},
submitForm: function (e) {
e.preventDefault();
alert('e');
var form = $(this);
if (app.validateForm(form) === false) return false;
console.log('go in ajax');
},
validateForm: function (form) {
var inputs = form.find('input'),
valid = true;
inputs.tooltip('destroy');
$.each(inputs, function (index, val) {
var input = $(val),
val = input.val(),
formGroup = input.parents('.form-group'),
label = formGroup.find('label').text().toLowerCase(),
textError = "Введите " + label;
if (val.length === 0) {
formGroup.addClass('has-error').removeClass('has-success');
input.tooltip({
trigger: 'manual',
placement: 'right',
title: textError
}).tooltip('show');
valid = false;
} else {
formGroup.addClass('has-success').removeClass('has-error');
}
return valid;
});
}
}
app.initialize();
}());
|
код к этому скрипту:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap forms</title>
<link rel="stylesheet" href="main_form.css">
<link href="bootstrap.min.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<div class="col-sm-6">
<h1 class="header">Форма заказа</h1>
<form class="form-horizontal" role="form">
<div class="form-group">
<label for="inputName" class="col-sm-2 control-label">Имя</label>
<div class="col-sm-10">
<input name="name" type="text" class="form-control" id="inputName" placeholder="Name">
</div>
</div>
<div class="form-group">
<label for="inputEmail" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input name="email" type="email" class="form-control" id="inputEmail" placeholder="Email">
</div>
</div>
<div class="form-group">
<label for="inputPhone" class="col-sm-2 control-label">Телефон</label>
<div class="col-sm-10">
<input name="phone" type="text" class="form-control" id="inputPhone" placeholder="Phone">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-success">Отправить</button>
</div>
</div>
</form>
<form action="javascript:void alert('Форма отправлена!')">
2
<input placeholder="Имя" type="text" title="Укажите ваше имя (не менее двух букв)" required pattern="[а-яА-ЯёЁ]{2,128}" />
3
<input placeholder="Телефон" type="tel" title=" Укажите номер телефона (от 5 до 13 цифр)" required pattern="[0-9]{5,13}" />
4
<button type="submit">Отправить</button>
5
</form>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="bootstrap.min.js"></script>
<script src="main_form.js"></script>
</body>
</html>
|
Ха, настойчивость дает результат:))) разобрался.
|
| Часовой пояс GMT +3, время: 21:09. |