Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Contact Form 7

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

События DOM

Отслеживая события DOM, вы можете сделать что-либо в нужный момент при работе с формой. К примеру, после успешной отправки формы сказать «Спасибо» в всплывающем окне или перенаправить пользователя на другую страницу.

Этот способ пришёл на смену коду on_sent_ok и on_submit, который мы писали во вкладке формы «Дополнительные настройки».

Список событий формы

wpcf7invalid
Срабатывает, когда форма успешно была отправлена на сервер, но почта не была отправлена, потому что были поля с недопустимым вводом.
wpcf7spam
Срабатывает, когда форма успешно была отправлена на сервер, но почта не была отправлена, поскольку обнаружена возможная активность спама.
wpcf7mailsent
Срабатывает, когда форма успешно была отправлена на сервер и почта отправлена адресату.
wpcf7mailfailed
Срабатывает, когда форма успешно была отправлена на сервер, но отправить почту не удалось. Это может быть в следствии того, что на хостинге не работает почтовый сервер.
wpcf7submit
Срабатывает, когда форма успешно была отправлена на сервер, независимо от других инцидентов. Нажали кнопку «Отправить» — сработало этой действие.
wpcf7beforesubmit
Срабатывает раньше события wpcf7submit, что позволяет провести любые манипуляции с formData — данными формы, которые будут отправлены на сервер. Событие добавлено в CF7 v4.9.

Код из примеров ниже нужно использовать там, где выводится форма. Если форма у вас выводится на всех страницах сайта, то хорошим решением будет разместить код в файле footer.php, так как этот шаблон используется на всех страницах сайта.

Примеры для события wpcf7submit

Код ниже — простой пример регистрации обработчика события. В этом примере функция прослушивает событие wpcf7submit у контейнера с классом wpcf7 и просто выдает предупреждение при его возникновении, то есть при клике по кнопке «Отправить» сразу вызывает сообщение «Опачки, меня пытаются отправить…

в Магадан!». Заметьте, что элемент с классом wpcf7 — это DIV с формой внутри, всё это плагин генерирует самостоятельно. Если у вас на странице несколько форм, код отработает только для первой найденной формы.

Конечно, вы замените ненужный alert() на более полезное действие, к примеру, красивой анимацией отправки формы.

// Ищем блок с формой, имеющий класс wpcf7 (его имеют все div с формой)
var wpcf7Elm = document.querySelector( '.wpcf7' );

// Мониторим событие wpcf7submit у выбранного блока
wpcf7Elm.addEventListener( 'wpcf7submit', function( event ) {
alert( «Опачки, меня пытаются отправить… в Магадан!» );
// Либо что-то более полезное
}, false );

Если вам захочется мониторить какую-то определенную форму (ниже по статье будут альтернативные решения, более рациональные), то укажите ID контейнера:

// Ищем уникальный блок с формой по его ID
var wpcf7Elm = document.querySelector( '#wpcf7-f92-p95-o1' );

// Тут мониторинг события wpcf7submit , как в предыдущем примере.

Примеры выше рассчитаны на работу с одной формой. Если на странице несколько форм и надо мониторить событие wpcf7submit (или другие) у всех, то вешаем событие не на отдельный блок, а на весь document:

document.addEventListener( 'wpcf7submit', function( event ) {
alert( «Кто-то отправил форму! Какую именно? Пока не знаю.» );
}, false );

Как отследить введенные данные в поля

Пользовательские данные передаются обработчику события как свойство detail.inputs объекта события. Структура данных detail.inputs представляет собой массив объектов, и каждый объект имеет свойства имени и значения. Допустим у формы 4 поля. Используем код:

document.addEventListener( 'wpcf7submit', function( event ) {
var inputs = event.detail.inputs;
console.log(inputs);
}, false );

При нажатии кнопки «Отправить» в консоле браузера отобразится структура данных:

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Нам доступны имя каждого поля формы (имя поля указывается в админке в теге поля и является обязательным атрибутом) и его значение.

Перебрать каждое поле и отреагировать на определенное можно так:

document.addEventListener( 'wpcf7submit', function( event ) {
var inputs = event.detail.inputs;

// Ищем поле с именем your-name и злоупотребляем alert'ом при нахождении поля
for ( var i = 0; i < inputs.length; i++ ) { if ( 'your-name' == inputs[i].name ) { alert( inputs[i].value ); break; } } }, false );

Существуют и другие свойства объекта события, которые вы можете использовать в обработчике.

detail.contactFormId
ID контактной формы. Данный ID можно увидеть в админке в адресной строке при редактировании формы или в самом шоткоде формы.
detail.pluginVersion
Версия плагина Contact Form 7.
detail.contactFormLocale
Языковой код формы. К примеру, ru_RU.
detail.unitTag
Юнит-тег контактной формы. У каждой формы свой, к примеру wpcf7-f92-p95-o1.
detail.containerPostId
ID поста, в контенте которого размещена форма.

Просмотреть все данные можно так:

document.addEventListener( 'wpcf7submit', function( event ) {
console.log(event.detail);
}, false );
Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Как обработать определенную форму

Например, если вы хотите что-то сделать только с определенной формой контакта (ID = 123), используйте свойство detail.contactFormId, как показано ниже:

document.addEventListener( 'wpcf7submit', function( event ) {
if ( '123' == event.detail.contactFormId ) {
alert( «Контактная форма с ID = 123.» );
// Делаем ещё что-нибудь
}
}, false );
меню

Борьба со спамом с помощью Akismet

Как бороться со спамом в плагине Contact Form 7? Предусмотрено несколько механизмов, но лишь пара являются популярными: reCAPTCHA и Akismet.

Как установить и настроить Akismet? При установке WordPress плагин Akismet устанавливается автоматически, остаётся его лишь активировать. Если по каким-то причинам его нет, то эти ссылки Вам помогут:

  • Официальный сайт Akismet
  • Akismet в репозитории WordPress
  • После активации плагина появится сообщение с предложением активировать вашу учётную запись:
  • Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?
  • При нажатии по кнопке вас перекинет на страницу настроек плагина:
  • Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?
  • Чтобы Akismet заработал, надо в настройках плагина указать API-ключ. Если его нет, то нажимайте кнопку «Получить API-ключ» и следуйте инструкциям:
  • Регистрация на офф. сайте плагина с использованием аккаунта wordpress.com
  • Выбор тарифного плана (есть бесплатный)
  • Добавление сайта в админ-панель сервиса по нажатию кнопки «Activate this site»
  1. Это простой и быстрый процесс. После активации сайта произойдёт редирект обратно в админку вашего сайта с уже готовыми настройками, их нужно сохранить:
  2. Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?
  3. Чтобы Akismet начал проверять поле, нужно при его генерации указать по какому правилу делать проверку, например:

akismet:author
Добавьте такой параметр в поле для ввода имени пользователя.
Пример: [text* your-name akismet:author]
akismet:author_email
Добавьте такой параметр в поле для ввода email пользователя.
Пример: [email* your-email akismet:author_email]
akismet:author_url
Добавьте такой параметр в поле для ввода ссылки от пользователя.
Пример: [text your-url akismet:author_url]

Рекомендуется использовать параметр akismet:значение ко всем полям, которые предусматривают такую проверку. По собранным данным Akismet примет решение, спам это или нет, поэтому их полнота играет важное значение.

В Contact Form 7 есть несколько видов оформления извещений:

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Зеленая рамка у извещения
Сообщение отправлено успешно
Жёлтая рамка у извещения
Некоторые поля заполнены с ошибкой, валидацию поле не прошло
Оранжевая рамка у извещения
Сообщение отмечено как спам
Красная рамка у извещения
Отправка сообщения провалена

Теперь можно протестировать работу формы с Akismet защитой, вписав вместо:

  • имени пользователя viagra-test-123 (параметр akismet:author);
  • и/или почты пользователя akismet-guaranteed-spam@example.com (параметр akismet:author_email).

Сообщение с такими данными будет помечено как спам и отослано на почту не будет.

меню

Ограничение доступа к панели администрирования

Изначально, вкладка с формами Contact Form 7 доступна всем пользователям с ролью участника (contributor) и выше. Редактировать формы могут только редакторы и администраторы. Как изменить права доступа к формам?

Параметры доступа изменяются с помощью констант, которые прописываются в корне движка в файле wp-config.php, например:

define( 'WPCF7_ADMIN_READ_CAPABILITY', 'manage_options' );
define( 'WPCF7_ADMIN_READ_WRITE_CAPABILITY', 'manage_options' );

Право manage_options по умолчанию имеют администраторы и супер администраторы сайта. Поэтому данный пример даст доступ к списку форм и возможность их редактировать только пользователям с этими ролями. Другие роли не увидят вкладку плагина.

WPCF7_ADMIN_READ_CAPABILITY
Минимальная роль или возможность для доступа к админке, то есть отображения меню и списка форм.
По умолчанию: edit_posts
WPCF7_ADMIN_READ_WRITE_CAPABILITY
Минимальная роль или возможность для редактирования форм. Этот параметр должен быть строже или такой же, как WPCF7_ADMIN_READ_CAPABILITY. Объясняется это тем, что нельзя редактировать формы, не имея доступа к админ-панели.
По умолчанию: publish_pages

Чтобы лучше понимать, как это работает, взгляните на код (CF7 v4.9.1, файл capabilities.php) с использованием этих констант:

add_filter( 'map_meta_cap', 'wpcf7_map_meta_cap', 10, 4 );

function wpcf7_map_meta_cap( $caps, $cap, $user_id, $args ) {
$meta_caps = array(
'wpcf7_edit_contact_form' => WPCF7_ADMIN_READ_WRITE_CAPABILITY,
'wpcf7_edit_contact_forms' => WPCF7_ADMIN_READ_WRITE_CAPABILITY,
'wpcf7_read_contact_forms' => WPCF7_ADMIN_READ_CAPABILITY,
'wpcf7_delete_contact_form' => WPCF7_ADMIN_READ_WRITE_CAPABILITY,
'wpcf7_manage_integration' => 'manage_options',
'wpcf7_submit' => 'read',
);

$meta_caps = apply_filters( 'wpcf7_map_meta_cap', $meta_caps );

$caps = array_diff( $caps, array_keys( $meta_caps ) );

if ( isset( $meta_caps[$cap] ) ) {
$caps[] = $meta_caps[$cap];
}

return $caps;
}

Из кода видно, что массив возможностей проходит через фильтр wpcf7_map_meta_cap, и содержит следующие данные:

По умолчанию

Array
(
[wpcf7_edit_contact_form] => publish_pages
[wpcf7_edit_contact_forms] => publish_pages
[wpcf7_read_contact_forms] => edit_posts
[wpcf7_delete_contact_form] => publish_pages
[wpcf7_manage_integration] => manage_options
[wpcf7_submit] => read
)

После изменения, к примеру, с помощью констант

Array
(
[wpcf7_edit_contact_form] => manage_options
[wpcf7_edit_contact_forms] => manage_options
[wpcf7_read_contact_forms] => manage_options
[wpcf7_delete_contact_form] => manage_options
[wpcf7_manage_integration] => manage_options
[wpcf7_submit] => read
)

Благодаря фильтру wpcf7_map_meta_cap, мы может изменить данный массив. Этот способ избавляет нас от редактирования файла wp-config.php, но придется писать код, к примеру, в файле functions.php:

add_filter( 'wpcf7_map_meta_cap', 'change_wpcf7_map_meta_cap' );

function change_wpcf7_map_meta_cap( $meta_caps ) {

// Новые значение возможностей
$replace_caps = array(
'wpcf7_edit_contact_form' => 'manage_options',
'wpcf7_edit_contact_forms' => 'manage_options',
'wpcf7_read_contact_forms' => 'manage_options',
'wpcf7_delete_contact_form' => 'manage_options',
);

return array_replace( $meta_caps, $replace_caps );
}
меню

Оформление чекбоксов и радиокнопок

Contact Form 7 по умолчанию оформляет чекбоксы и радиокнопки в линию. Но это можно изменить с помощью настроек тега этих полей и простых CSS правил.

  • Так выглядят чекбоксы по умолчанию:
  • Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?
  • Но если передать в тег чекбокса параметр label_first, отображение лейбла относительно флажка измениться на обратное:
Читайте также:  Можно ли предоставлять адвокатам выписки из домовых книг?

[checkbox your-cb label_first «Option 1» «Option 2» «Option 3»]

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Чтобы выстроить чекбоксы в столбик, добавьте строку стилей в CSS файл темы:

span.wpcf7-list-item {
display: block;
}

Чтобы выстроить чекбоксы как таблицу, добавьте строку стилей в CSS файл темы (дополнительно использовался параметр label_first):

span.wpcf7-list-item {
display: table-row;
}

span.wpcf7-list-item * {
display: table-cell;
}

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

меню

Загрузка JavaScript и CSS по необходимости

По умолчанию Contact Form 7 загружает JavaScript и CSS на всех страницах сайта, независимо где используется форма. Технически плагин не может работать иначе, но ему можно «подсказать».

Пример 1 — полное отключение JavaScript и CSS и включение где нужно

Шаг 1 — отключение JavaScript и CSS на всех страницах сайта

Существует константа WPCF7_LOAD_JS со значением по умолчанию true, которая определена в коде плагина и отвечает за загрузку JavaScript на всех страницах сайта. Её можно переопределить, вставив в файл wp-config.php код:

define('WPCF7_LOAD_JS', false);

Этот код отменит загрузку скриптов плагина.

И такая же константа есть для стилей WPCF7_LOAD_CSS, которая работает по тому же принципу — отменяет загрузку стилей плагина:

define('WPCF7_LOAD_CSS', false);

С версии плагина 3.9 и выше, можно отменить загрузку JavaScript и CSS через хуки в functions.php:

add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );

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

Шаг 2 — загрузка файлов на страницах с формами

Например, у нас есть страница «Контакты» с формой. За вывод страницы отвечает файл contact.php. Тогда, воспользуемся кодом:

if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
wpcf7_enqueue_scripts();
}

if ( function_exists( 'wpcf7_enqueue_styles' ) ) {
wpcf7_enqueue_styles();
}

Эта конструкция должна быть размещена в файле contact.php до вызовы функции wp_head(). Это рекомендация разработчика плагина.

меню

Пример 2 — отключение скриптов и стилей везде где НЕ нужно

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

1 вариант:

## Отключаем стили, скрипты плагина везде кроме страницы contacts
add_filter('wp', 'cf7_disable_css_js');
function cf7_disable_css_js(){
if( ! is_page('contacts') ){
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
}
}

2 вариант:

## Отключаем стили, скрипты плагина везде кроме страницы contacts
add_action('wp_print_styles', 'my_deregister_javascript', 100 );
function my_deregister_javascript(){
if( ! is_page ('contacts') ){
wp_deregister_script( 'contact-form-7' ); // отключаем скрипты плагина
wp_deregister_style( 'contact-form-7' ); // отключаем стили плагина
}
} меню

Пример 3 — включение скриптов только при использовании шорткода формы

Сначала отменяем подключение JS и CSS, а затем подключаем обратно только тогда, когда срабатывает шорткод формы. Тем самым файлы подключатся только на тех страницах, где есть шорткод формы.

function wpcf7_remove_assets() {
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
}

add_action( 'wpcf7_init', 'wpcf7_remove_assets' );

function wpcf7_add_assets( $atts ) {
wpcf7_enqueue_styles();
wpcf7_enqueue_scripts();

return $atts;
}

add_filter( 'shortcode_atts_wpcf7', 'wpcf7_add_assets' );

Код можно оформить как плагин или вставить в functions.php темы.

Как настроить дизайн виджета «Кнопка»

Кнопка на сайте служит для призыва посетителя к действию, например, сделать заказ, оставить заявку и так далее. Вы можете создавать на вашем сайте разные дизайны кнопок для разных задач, делая их привлекательнее для посетителя.

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Разместите виджет «Кнопка» на странице вашего сайта. При нажатии на него у вас откроются настройки в левой панели конструктора и в панели над ним.

В левой панели доступно:

  • Создание и выбор дизайна кнопки. Вы можете создать до 10 разных дизайнов.
  • Выравнивание кнопки в блоке виджета: слева, по центру или справа.
  • Добавление класса виджету.
  • Включение сбора статистики.
  • Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?
  • В панели настроек над виджетом вам доступны настройки оформления кнопки и назначения ссылки на неё.
  • Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?
  • Нажав на иконку капельки, вы сможете изменить настройки выбранного в левой панели дизайна кнопки.

При изменении настроек оформления они применятся ко всем кнопкам на вашем сайте, для которых выбран такой же дизайн.

Для оформления кнопки возможны изменения следующих параметров:

  • Фон — выбор цвета подложки и её прозрачности, а также возможность включения обводки кнопки, её толщины и прозрачности.
  • Текст — размер и цвет текста в кнопке.
  • Отступы — размер бокового, верхнего и нижнего отступов между текстом и краем кнопки.
  • Скругление — установка радиуса скругления углов кнопки в пикселях для всех углов сразу или для отдельных.
  • Тень — выбор размера тени из предложенных (маленькая, средняя, большая),  а также возможность настроить собственную тень: её цвет, прозрачность, сдвиг по осям X и Y, блюр и размах. 
  • Анимация — выбор эффекта при наведении курсора мыши на кнопку. Доступны: непрозрачность, увеличение и яркость. Для эффектов вы можете настроить длительность и задержку в секундах, а также выбрать тип ускорения.

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Чтобы установить ссылку на кнопку, нажмите на иконку цепи в панели настроек над ним. В открывшемся окне выберите, куда будет вести ссылка, укажите её и сохраните изменения.

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

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Помогла ли вам статья?

Статью еще никто не оценивал

38 Instagram-хитростей, о которых не все знают | Rusbase

Оказывается, не все используют возможности Инстаграм на 100%. Илья Слюсарев, автор smmplanner.com, собрал лайфхаки, которые упрощают использование сервиса.

Признавайтесь, о скольких из них не знали вы?

38 Instagram-хитростей, о которых не все знают Виктория Кравченко НОВОСТИ ИНСТАГРАМА

10 незаменимых инструментов для работы с Instagram

12 лайфхаков по использованию Instagram Stories

Как работает Instagram-мафия: признание тревел-фотографа

1. Адаптивная верстка Инстаграм

Я люблю делать скриншоты из вебверсии Инстаграм. Удобнее всего для этого сжимать браузер. Для работы с Инстаграмом я использую SMMplanner и Flume — в нём я отвечаю на комментарии и личные сообщения.

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

2. Пост как часть большой картинки

Подписчики смотрят на фотографии не только в ленте, но и в аккаунтах. Чтобы выделиться среди прочих, некоторые пользователи применяют технику больших картинок. Берут большое изображение, которое нарезается на мелкие. Получается вот такая приколюха, как у Micah404.

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

3. Ссылки в описании аккаунта

Сейчас скажу банальность, но в публикациях, даже если вы вставите ссылку — она будет не кликабельной. И если ваш пиарщик или маркетолог требует вставлять ссылки, меняйте место работы или пиарщика. Это больные люди, они могут ещё что-нибудь дикое придумать.

Активная ссылка может быть только в описании аккаунта. Ссылка должна вести на адаптивный сайт, люди же будут заходить с мобильников. Желательно, чтобы ссылка сразу вела на посадочную страницу.

Поработайте с вебмастером, пусть он зарегистрирует короткий домен для вашего сайта, и будет настраивать редирект на основной сайт, через короткий домен. Допустим у вас цветочный магазин с адресом cvetoteka.ru, короткий домен cvet.ok. Теперь в Инстаграм можно разместить сокращенную страницу на какой-нибудь букет, например, cvet.ok/rose.

4. Свой список фильтров

Сейчас в Инстаграм свыше 40 фильтров! Я использую 2. Чтобы очистить рабочее пространство, я могу скрыть фильтры, или изменить порядок фильтров на более удобный.

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Зажмите фильтр и перетащите его в более удобное место или удалите…

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

или прокрутите список фильтров до конца, и выберите пункт «Изменить».

5. Интенсивность фильтра

Компьютер для пенсионеров

Разработчики из Microsoft, начиная с пакета Office 2007, коренным образом изменили привычный интерфейс приложений.
Вместо знакомого всем списка меню в Word появилась целая лента.

Важно! Не забудьте скачать мою бесплатную PDF книгу «5 Честных Сервисов Заработка в Интернете» по этой ссылке. В ней я даю, 5 надежных проверенных сервисов по Заработку в Интернете новичку для Быстрого Старта и выхода на Доход от 30 тысяч рублей в месяц! (и как вы можете это повторить).

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

В ТЕМУ: Как создавать красивые надписи в Word?

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

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

У ленты много настраиваемых параметров. И одним из них является возможность сворачивания в небольшую строчку меню при отсутствии выделения мышью.

В ТЕМУ: Как создать первый документ в программе Microsoft Word 2010? Ввод текста и исправление ошибок

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

Зная особенности приложений Microsoft, понятно, что для изменения параметра необходимо поставить или снять галочку. Давайте поищем, где бы она могла находиться.

В ТЕМУ: Как разместить фото или картинку в текстовом документе Word?

Попробуем нажать правой кнопки мыши на свернутой панели инструментов.

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

У нас появилось контекстное меню вот такого вида.

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Теперь если попробовать снять галочку с пункта «Свернуть ленту», то она появится на экране и останется там, даже после щелчка мышью на свободном пространстве документа.

В ТЕМУ: Как удалить сразу все переносы на следующую строку для большого текста?

Контекстное меню будет иметь следующий вид.

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

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

Важно! Не забудьте скачать мою бесплатную PDF книгу «5 Честных Сервисов Заработка в Интернете» по этой ссылке. В ней я даю, 5 надежных проверенных сервисов по Заработку в Интернете новичку для Быстрого Старта и выхода на Доход от 30 тысяч рублей в месяц! (и как вы можете это повторить).

Читайте также:  Что делать при отсутствии Ревизионной комиссии в ТСЖ?

5 Честных Сервисов Заработка в Интернете [PDF]

Как сделать спойлер или появление блока при нажатии

Спойлер – это блок с информацией, который изначально скрыт от пользователей и появляется лишь тогда, когда пользователь нажмет на определенную кнопку. На моем сайте в виде спойлера сделаны ПРАВИЛА добавления комментариев. Если нажать на слово ПРАВИЛА, которое выделено, то ниже откроется блок с правилами.

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

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

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Давайте по порядку разберем каждый из способов, чтобы Вы могли применить один из них у себя на сайте. Но перед тем как это сделать, давайте определимся с библиотекой jquery. Если вы ранее подключали ее, то приступайте к просмотру способов, если нет, то в шапке или подвале подключите.

Теперь поехали по порядку.

Способ №1

По сути самый простой из способов, при нажатии блок моментально появляется. При повторном нажатии моментально исчезает. Все просто. Данный способ использую и я.

Добавляем очень простенький скрипт. Его можно добавить непосредственно в то место где хотите вывести блок, можете подключить в шапке или подвале, а можете поместить его в файл, который потом подключить к сайту, опять же, где угодно.

Скрипт работает с блоком у которого присвоен класс spoiler-body и показывает его когда будет совершено нажатие на кнопку, блок или ссылку, в общем что угодно, у чего присвоен класс spoiler-title. Для показа блока, скрипт использует метод toggle.

Далее нужно вставить в нужное место, там где вы хотите видеть кнопку и блок, следующую html разметку:

Спойлер Показать/скрыть
Скрытый текст, который появится при наведении

Кнопкой, которая будет открывать станет текст внутри тега b, как и говорил, можете использовать любой тег.

Ну и присвоим минимальные стили. Главный параметр — это display:none у блока, который будет скрытым. Это обязательное условие, иначе не будет работать.

.spoiler-title{cursor:pointer;}
.spoiler-body{display:none;background:#f1f1f1;}

Больше ничего не нужно, все должно работать. Есть еще один момент. Можно сделать эту анимацию немного плавнее. Для этого в скобках после метода toggle добавьте значение в миллисекундах.

Например: toggle(500). Теперь открытие блока будет происходить не моментально, а пол секунды 0,5. Открывающийся блок появится по диагонали от верхнего левого угла к нижнему правому.

Это Вы можете увидеть в примере выше.

Способ №2

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

Данный способ плавно открывает блок и он появляется сверху вниз. Для появления, скрипт использует метод slideToggle.

Тут как и в первом варианте можно изменить время анимации. По умолчанию его значение равно 400 миллисекунд. Если желаете ускорить или замедлить, то в скобках добавьте значение.
Например: slideToggle(600).

Способ №3

Этот способ по сути как и второй, стой же анимацией, но в нем есть одна интересная фишка. Меняется кнопка на которую нажали для открытия блока.

В примере вы видели, это просто текст — Показать текст который при открытии блока, меняется на Скрыть текст.

Если добавить фантазию, то можно вместо текста добавить картинку или блок, который украсить стилями. Используется в этом способе, следующая функция.

Изменить время анимации можно по тому же методу, что и во втором способе.

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

А Вы используете спойлеры у себя на сайте и для чего?

На этом все, спасибо за внимание. ????

Проверка заполнения формы с использованием JavaScript

Данный урок описывает, как создать JavaScript форму, которая проверяет правильность заполнения посетителем полей перед отправкой данных на сервер. Сначала мы объясним, почему проверка заполнения формы является полезной методикой, а затем построим простой пример с объяснением, как все происходит.

Зачем нужна проверка заполнения формы?

Проверка заполнения формы — процесс, при котором данные формы проверяются перед обработкой. Например, если Ваша форма имеет поле, в которое пользователь должен ввести email адрес, возможно Вы захотите проверить, что поле заполнено, прежде чем начать дальнейшую обработку формы.

Существует два основных метода для проверки заполнения формы: на стороне сервера (с использованием CGI скриптов, ASP и т.д.) и на стороне клиента (обычно используется JavaScript).

Проверка на стороне сервера более безопасная, но в большинстве случаев требует более сложного кода, в то время как проверка на стороне клиента выполняется проще и быстрее (браузер не нуждается в соединении с сервером для проверки заполнения формы, таким образом, пользователь получает немедленный ответ в случае пропущенных полей, которые необходимо заполнить).

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Проверка формы на стороне клиента. Обычно выполняется с помощью встроенного JavaScript скрипта.

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает?

Проверка формы на стороне сервера. Обычно выполняется с помощью CGI или ASP скрипта.

В данном уроке мы построим простую форму с проверкой на стороне клиента с помощью JavaScript. Вы сможете затем адаптировать ее под свои нужды.

Простая форма с проверкой

Давайте построим простую форму с проверкой заполнения с помощью скрипта. Данная форма имеет одно текстовое поле «Ваше имя» и кнопку для отправки данных. Наш скрипт проверяет, что пользователь ввел свое имя перед тем, как отправить данные на сервер.

Откройте форму и посмотрите в действии. Попробуйте нажать кнопку «Отправить данные» ничего не вводя в поле «Ваше имя».

Вы также можете открыть исходный код формы в другом окне, чтобы было удобно работать с уроком.

Страница содержит функцию JavaScript, которая называется validate_form(). Она выполняет проверку заполнения формы. давайте посмотрим сначала на форму.

Форма

Первая часть формы — тэг form

Форма имеет имя contact_form. С его помощью мы получим доступ к форме из JavaScript функции проверки.

Форма использует постметод для отправки данных в htm-файл заглушку, который просто выводит сообщение. В действительности Вы можете пересылать данные Вашему CGI скрипту, ASP странице и т.д. (например для отправки почты).

Также тэг form содержит onsubmit атрибут для вызова JavaScript функции проверки validate_form (), когда нажимается кнопка «Отправить данные». Функция возвращает логическое значение, для которого true означает «проверка прошла успешно», а false — «данные задержаны». Таким образом мы можем предотвратить отправку данных формы, если пользователь не заполнил ее правильно.

Остальной код формы добавляет поле ввода contact_name и кнопку «Отправить данные»:

Пожалуйста введите Ваше имя

Ваше имя:

Функция validate_form()

Функция проверки формы validate_form() встроена в секцию head вначале страницы:

Первая строчка () указывает браузеру, что далее идет код JavaScript, а коментарий HTML (

Не получается оформить заказ на iHerb. Не могу оформить заказ на Айхерб

Что делать, если при нажатии на кнопку «Разместить» заполненная информация пропадает? Последнее время меня закидали сообщениями на тему «не могу оформить заказ на Айхерб». Действительно иногда возникают некоторые сложности и глюки, особенно при заказе через приложение. В этой статье пойдет речь о возможных технических проблемах на сайте, которые никак не связаны с блокировкой iHerb в России

  • Если вы столкнулись с какими-то сложностями при оформлении заказа на iHerb, прочитайте эту статью и возможно найдёте ответ на свой вопрос.  
  • О настоящей блокировке iHerb в России в апреле 2020 года и о том как ее обойти и сделать заказ читайте в этой статье.
  • Вот список самых распространённых ошибок и проблем, с которыми чаще всего сталкиваются покупатели при заказе на Айхерб:

-Не активна кнопка «К оформлению»  Проверьте лимиты заказа по весу и сумме. Максимум 150$ (~ 9900р) и 5 кг для доставки через Boxberry и Pony Express. И 100$ и 1,8 кг для доставки Почтой России. 

Внимательно прочитайте пошаговую инструкцию для оформления первого заказа на iHerb

-Появляется плата за доставку при заказе в Россию  Проверьте общую сумму заказа ПОСЛЕ всех скидок, она должна быть более 60$ (~ 4000р)

-Слетела корзина, появились давно заказанные позиции, обнулилась и т.п.   В адресной строке браузера исправьте цифру 4 на 6. То есть url корзины должен выглядеть так https://checkout6.iherb.com/cart.

Корзина с ошибкой (с другими товарами) выглядит вот так https://checkout4.iherb.com/cart

-Корзина в браузере не синхронизируется с корзиной в приложении. 

Такая проблема действительно существует, это недоработка приложения. Товары, которые вы собираете в корзину в Приложении не появляются в корзине, если зайти в свой аккаунт через браузер.  В приложении нажмите на три точки в верхней зеленой строке и выберите «Поделитесь вашей корзиной» — «Скопировать». И отправьте ссылку себе по почте, затем откройте эту ссылку на компьютере и добавьте все позиции в свою корзину.

-При переходе к оформлению заказа в браузере появляется надпись «400 Bad Request» Зайдите в настройки браузера и полностью очистите всю историю, в том числе файлы, сохраненные в кэше и файлы cookie -При переходе к выбору пункта выдачи появляется только карта, без списка адресов ПВ Вернитесь в корзину и выберите доставку Boxberry вместо Pony Express. -При переходе к оформлению сумма заказа увеличивается.

Это означает, что у вас слетает скидка 5% по коду ZRZ108. Такое часто бывает у тех, кто пользуется кэшбэк сервисами (в этом случае скидка 5% не работает) либо просто глюк 🙂 у меня такое тоже было  Попробуйте почистить куки браузера (удалите всю историю посещений в настройках)/ сменить браузер/ зайти инкогнито, через VPN/ переустановить приложение и в корзине снова вручную ввести код ZRZ108. 

Увеличивается сумма заказа при переходе к оформлению ПРИ ПЕРВОМ ЗАКАЗЕ

Читайте также:  При признании судом протокола ОСС недействительным, какой тариф за содержание общ. имущ-ва применять?

Это означает, что у вас слетает скидка новичка (-10% по коду ZRZ108) и остаётся только скидка 5% для постоянного покупателя. То есть система считает, что вы не в первый раз заказываете, так используете данные, которые уже вводились на сайте.

Например, номер карты, если кто-то уже оплачивал свои заказы вашей картой  Используйте новую карту (Visa или MasterCard) либо другие способы оплаты (яндекс деньги, qiwi кошелёк, PayPal)

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

-После отмены заказа не срабатывает повторно промокод на скидку.

Даже если заказ был отменён, он все равно считается системой как оформленный. Поэтому одноразовые промокоды второй раз не срабатывают.  В этом случае вы можете написать в техподдержку сайта (лучше в онлайн чат, как его найти смотрите ниже), объяснив, что отменили заказ случайно. Оператор предложит вам ввести скидку вручную. То есть вам нужно будет оформить заказ без скидки и отправить техподдержке номер заказа, и они сами вручную изменяет его. Сумма скидки вернётся вам на счёт.

-В корзине около товара появляется надпись «не отвечает требованиям для данной промоакции». 

Это не означает что товар нельзя заказать! Надпись говорит о том, что на данный товар не действуют никакие скидки, в том числе 5% по коду ZRZ108. 

  1. Вот список некоторых таких брендов исключений: Nordic Naturals, Thorne Research, Carlson labs, Dr. Mercola
  2. -В корзине появляется надпись «системе не удалось посчитать количество товаров». 
  3. Это значит что надо что-то удалить из корзины. Возможно у вас в заказе какой-то запрещённый товар для ввоза в Россию, либо товар, которого нет в наличии Пробуйте удалять товары по одному и смотрите, пропадёт ли эта надпись
  4. -Не удаётся оформить заказ через приложение/не ввести паспортные данные/ не появляется кнопка перехода к следующему этапу 
  5. Приложение iHerb недавно обновилось и работает пока ещё не совсем корректно, поэтому   используйте для заказа браузер на компьютере. 

-После оформления и оплаты заказа пришло письмо, что каких-то позиций не оказалось на складе (не было в наличии) и они отправили заказ без них. Как вернуть деньги за отмененные позиции?

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

При размещении заказа сумма на вашем счету только «морозится», окончательно списывается только после отправки заказа. Поэтому такой возврат, а по сути разморозка, происходит без уведомлений.

При этом, сумма за доставку заказа не изменится.

-Заказ оформлен и оплачен, но долго не отправляется.

Обычно на сборку и отправку заказа уходит от 2 часов до 2 суток. Если ваш заказ не отправлен спустя более 3 суток   напишите в техподдержку, возможно какого-то товара нет в наличии и из-за этого возникла задержка. Вы измените заказ, отменив отсутствующую позицию, и заказ будет отправлен.

-По вопросам неполучения посылок/недовложений/помятых, разбитых товаров в коробке и т.п.   пишите в техподдержку сайта или оставляйте заявку через кнопку «Возмещение денег/возврат» в личном кабинете в разделе «Заказы»

Как связаться с техподдержкой сайта iHerb? Как найти онлайн чат?

  • Способы связи с техподдержкой iHerb
  • ???? Почта: 
  • russia@iherb.com — на русском языке
  • info@iherb.com — на английском языке (отвечают быстрее)

???? Отправить запрос в службу поддержки через сайт на русском языке можно ЗДЕСЬ. Ответ придет вам на почту.

Самый быстрый способ получить ответ от техподдержки iHerb — написать в круглосуточный онлайн чат. Там англоязычные операторы, при необходимости можно воспользоваться Гугл-переводчиком.

  1. ???? Как найти онлайн-чат iHerb:
  2. -В браузере перейти по ЭТОЙ ССЫЛКЕ на страницу связи со службой поддержки
  3. -В настройках переключить язык на английский и внизу страницы нажать “Contact Us” и далее выбрать “Click here to chat now”. 
  4. -Откроется новая вкладка, где надо нажать зеленую кнопку «Chat»

Когда следует использовать элемент Button

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

Сам элемент выглядит таким образом:

Сделать что-нибудь

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

Элемент сам по себе, не может этого сделать. Было много разговоров о том, чтобы разрешить «href везде», но ничего из этого так и не вышло.

При нажатии на кнопку действительно производятся определенные действия, если используется соответствующий контекст…

Веб-формы могут содержать кнопки для выполнения (подтверждения) действий. Вы можете подумать, что это выглядит приблизительно так:

Элемент в оболочке , по умолчанию, ведет себя именно так, как и показано выше.

Submit

Однако формы также могут иметь кнопки отмены. Вы можете дублировать вид действия кнопки, изменив поведение по умолчанию с выполнения (подтверждения) действия на отмену:

Reset

Нажатие на эту кнопку приведет к удалению всех других полей ввода (и текстовых областей) из родительского блока .

Основной причиной использования элемента является то, что он содержит и открывающийся, и закрывающийся теги (). А это значит, что его можно разграничить с любым другим кодом. На практике часто возникает такая ситуация:

Подтвердить

Пока будет сохраняться , этот смешанный контент будет отображаться на экране.

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

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

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

Меня уже достали такие кнопки.

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

Скорее всего, выше приведенный код означает что-то типа: Я собираюсь кликнуть кнопку, чтобы сделать что-то с JavaScript. Так или иначе, это, кажется, лучше, чем использовать обычный , потому что вы получаете возможность изменения вида курсора и все остальные стили по умолчанию.

Если вам не нравятся эти бессмысленные ссылки, для существует неплохая альтернатива. Но, к сожалению, вне контекста блока по-прежнему остается бессмысленным элементом.

Вне я бесполезна.

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

Это, наверное, лучшее решение. Если JavaScript требуется для любых действий связанных с кликами, то для элемента в принципе можно обходиться и без запуска JS.

Но мы можем сделать следующее:

// 1. Создаем кнопку
var button = document.createElement(«button»);
button.innerHTML = «Do Something»;

// 2. Размещаем ее
var body = document.getElementsByTagName(«body»)[0];
body.appendChild(button);

// 3. Добавляем обработку действия
button.addEventListener («click», function() {
alert(«did something»);
});

Вы можете легко сделать «кнопку добавления» частью рабочего процесса JavaScript.

Если у вас есть какие-нибудь гипертекстовые переходы на другие страницы, то целесообразнее оформлять их ссылкой, чтобы можно было использовать анкор. Даже если вы переназначаете ее поведение через JavaScript.

Это прогрессивное улучшение в лучшем его применении. Например:

  • Кнопка поиска обычно порождает запуск поисковых сценариев Ajax — в то время как ссылка просто может указывать на страницу поиска;
  • Кнопка «опубликовать» запускает следующий шаг публикации чего-то, что нужно пользователю — но ссылка может просто вести на страницу / опубликовать /;
  • Кнопка с миниатюрой изображения открывает отдельную панель, на которой выводится изображение в большем размере — а ссылка может просто указывать URL-адрес этого увеличенного изображения.

Если ничего больше не подходит, вставляйте кнопку с JavaScript.

Допустим, вы использовали анкорную ссылку. Но только вы решили похвалить себя за то, что идете в ногу со временем и используете прогрессивное улучшение, как возникают некоторые проблемы.

У вас может получиться что-то похожее на то, что получилось у меня!

Я в порядке

Но вы сами еще не совсем в порядке. MDN подробно рассматривает данную проблему:

Обратите внимание: Будьте осторожны при разметке ссылок с функциями кнопки. Действия кнопки, как правило, вызываются с помощью клавиши «Пробел», в то время как действия ссылок вызываются через клавишу Enter.

Другими словами, когда вы используете ссылки, которые должны вести себя, как кнопки, добавления только role=»button» недостаточно.

Также необходимо будет добавить ключ обработчика действий, который будет реагировать на нажатие клавиши «Пробел», чтобы обеспечить соответствие с оригинальной кнопкой.

Что получается? Вы активируете ссылки и кнопки с разными ключами. Поэтому примите это во внимание.

Ну что ж, на этом все. И хм… делайте интерактивные вещи правильно.

Данная публикация является переводом статьи «When To Use The Button Element» , подготовленная редакцией проекта.

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *