Автор

Форма обратной связи на jQuery

Форма обратной связи на jQuery


Минимальный и настраиваемый фрагмент, позволяющий быстро генерировать семантическую форму в ваших веб-проектах.

 

ДЕМО
ИСХОДНИКИ

 

Существуют некоторые дополнительные функции (например, плавающие метки), которые можно легко удалить, если вы хотите, чтобы форма была проще. Мы включили все стандартные элементы формы, такие как переключатели, флажки, выбор, сообщения об ошибках и т. Д.

 

Создание структуры

Наличие HTML-структуры стандартной формы в кармане - это уже способ сэкономить время, не так ли? Элемент form содержит 2 элемента fieldset, которые разбивают форму на два основных блока. Каждый элемент формы (который обычно содержит <label> + <input>) заключен в простой div. Это позволяет нам легко контролировать интервал, устанавливая поля только один раз.

Вот структура html. Вы можете заметить некоторые конкретные классы, об этом мы поговорим в разделе CSS.

<form class="cd-form floating-labels">
<fieldset>
<legend>Account Info</legend>

<div class="error-message">
<p>Please enter a valid email address</p>
</div>

<div class="icon">
<label class="cd-label" for="cd-name">Name</label>
<input class="user" type="text" name="cd-name" id="cd-name" required>
</div>

<!-- ... -->
</fieldset>

<fieldset>
<legend>Project Info</legend>

<div>
<h4>Budget</h4>

<p class="cd-select icon">
<select class="budget">
<option value="0">Select Budget</option>
<option value="1">&lt; $5000</option>
<option value="2">$5000 - $10000</option>
<option value="3">&gt; $10000</option>
</select>
</p>
</div>

<div>
<h4>Project type</h4>

<ul class="cd-form-list">
<li>
<input type="radio" name="radio-button" id="cd-radio-1" checked>
<label for="cd-radio-1">Choice 1</label>
</li>

<li>
<input type="radio" name="radio-button" id="cd-radio-2">
<label for="cd-radio-2">Choice 2</label>
</li>

<li>
<input type="radio" name="radio-button" id="cd-radio-3">
<label for="cd-radio-3">Choice 3</label>
</li>
</ul>
</div>

<!-- ... -->

<div class="icon">
<label class="cd-label" for="cd-textarea">Project description</label>
<textarea class="message" name="cd-textarea" id="cd-textarea" required></textarea>
</div>

<div>
<input type="submit" value="Send Message">
</div>
</fieldset>
</form>

 

Добавление стиля

CSS делится на 3 части: 1) Форма, 2) Пользовательские значки и 3) Плавающие метки. Таким образом, если вам нужна основная часть кодирования, вы можете просто взять 1) форму.

Как добавить собственный значок: вам нужно добавить класс к элементу input / select / textarea, который вы хотите стилизовать с помощью значка (то есть класс .user к первому элементу ввода). Во-вторых, вам нужно добавить класс .icon к его родительскому элементу. Наконец, в CSS вы определите пользовательский фоновый рисунок. Если требуется ввести поле ввода, вам нужно определить 2 фоновых изображения, как в примере ниже:

.cd-form .icon input, .cd-form .icon select, .cd-form .icon textarea {
 	padding-left: 54px !important;
}
.cd-form .user {
 	background: url("../img/cd-icon-user.svg") no-repeat 16px center;
}
.cd-form [required].user {
 	background: url("../img/cd-icon-user.svg") no-repeat 16px center, 
 				url("../img/cd-required.svg") no-repeat top right;
}

Плавающие метки активируются с помощью класса .floating-labels, добавленного в элемент .cd-form. Если вы никогда не слышали об этом шаблоне UX, он был впервые представлен Мэттом Д. Смитом. Он также объяснил, как он придумал эту идею в этой интересной статье. На мой взгляд, это отличное решение для UX: оно позволяет сначала использовать метки в качестве заполнителей, а затем превращать их в анимированные метки после того, как пользователь начнет печатать. Таким образом, пользователь всегда имеет представление о том, какая информация уже была предоставлена.

Вы увидите в CSS класс .floating-labels из класса .js, который добавляется Modernizr, когда javascript поддерживается браузером. Таким образом, если javascript отключен браузером / пользователем, форма по-прежнему доступна со стандартными метками (класс .floating-labels не производит никакого эффекта).

Чтобы стилизовать обязательное поле, мы воспользовались требуемым булевским атрибутом HTML5. Пока ошибка - это просто класс, добавленный к элементу формы.

.cd-form [required] {
 	background: url("../img/cd-required.svg") no-repeat top right;
}
 
.cd-form .error {
	border-color: #e94b35 !important;
}

Еще один интересный момент - это то, как мы создали пользовательские кнопки радио и проверки. Вы найдете исходный код довольно простым. Короче говоря, мы установили position: absolute; и opacity: 0; для радио и проверки входных элементов, и заменил их на пользовательские :: before и :: after псевдоэлементы label.

 

Обработка событий

Javascript был использован для активации плавающих меток. Если в DOM существует элемент .floating-labels, мы инициализируем функцию floatLabels (): он захватывает поля ввода формы (предназначенные для следующих элементов .cd-label) и привязывает функцию checkVal () к keyup () Событие, чтобы определить, начал ли пользователь вводить текст.

if( $('.floating-labels').length > 0 ) floatLabels();
 
function floatLabels() {
	var inputFields = $('.floating-labels .cd-label').next();
	
	inputFields.each(function(){
		var singleInput = $(this);
		
		singleInput.keyup(function(){
			checkVal(singleInput);	
		});
	});
}

Функция checkVal () проверяет входное значение: если не пусто, он добавляет класс float к предыдущему элементу .cd-label, в противном случае он удаляет его.

 

Вот и всё!

Многие материалы на сайте взяты из блогов: "Все для веб-дизайнера Rudebox", "A free library of HTML, CSS, JS nuggets Codyhouse" - полностью переведен и представлен в ознакомительных целях!

vk.com/club.ssdru

Подписывайтесь на нашу группу в контакте vk.com/club.ssdru



Статьи по темеjQuery

Форма обратной связи на jQuery

Красивый сайт остается в памяти посетителя очень долго, и это несомненно прекрасно. Сегодня мы бы хотели поговорить об замечательный заглушке на ваш сайт...


Форма обратной связи на jQuery

Какова цель таймера, для сайта? Когда мы ожидаем, какого то события, мы пытаемся найти способ показать пользователям, сколько времени осталось. Таймер дает чувство важности события, и если его связать с email полем ввода, то вы получите намного больше подписчиков на ваши новости.

Что мы ожидаем от jQuery таймера? Сегодня мы будем создавать jQuery плагин для отображения обратного отсчета времени. Он будет показывать оставшиеся дни, часы, минуты и секунды до начала события. Что же, начнем…


Форма обратной связи на jQuery

Очень маленький скрипт для всплывающих подсказок, который весит всего 2 килобайта, и притом абсолютно независим от сторонних библиотек. Чтобы им пользоваться, достаточно подключить скрипт, таблицу стилей и добавить обработчики событий для нужных ссылок.


Форма обратной связи на jQuery

Ранее в своём блоге, в статье «Невероятная наглость» я уже описывал ситуацию когда у меня спёрли весь контент с моего сайта и тогда всё решилось силами хостинга на котором распологался сайт клон! Сейчас всё обстоит совершенно иначе.


Раскрутка в соцсетях

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


Перейти в Блог

Надёжный хостинг

С нами хостинг удобен и прост, как диван у вас дома. Вы с комфортом размещаетесь, а все внутренние пружины мы берем на себя.

Бесплатный тестовый период, ежедневные бэкапы, неограниченный трафик, акции с бонусами... Конечно, у нас все это есть.


Перейти на хостинг

О КОМПАНИИ

Studio Design существует с 2001 года. Основной нашей деятельностью до 2007 года было видеопроизводство ( видеореклама и документальные фильмы, о чем подробно описано в нашем блоге ). С 2007 года, вот уже как лет, наша основная специфика - это создание сайтов для бизнеса или частной деятельности, веб дизайн, а также поддержка и администрирование готовых проектов. Каждая выполненная нами работа - это уникальный, а самое главное, адаптивный под все современные мобильные устройства дизайн сайта. Мы готовы создать сайт с нуля для каждого клиента с любого уголка России! Мы поможем Вам в создании, как одностраничных сайтов – визиток, так и крупных интернет магазинов или корпоративных сайтов. А все наши работы, большинство из которых действуют и по сей день!

Close

Целовальников Сергей


Веб-дизайн, HTML5, CSS3, jQuery, JavaScript, Верстка.

Верстальщик с большим опытом работы. Занимаюсь созданием сайтов с 2005 года. Постоянно обучаюсь и совершенствую свои навыки. Веду свои проекты, в том числе и данный блог.

Close