Event функция и событие. Submit Form, код обработки.

Простой код JS. Клавиша Enter и нажатие кнопки формы.

У меня на сайте есть форма быстрого поиска информации по тексту кода страниц ... Это очень удобно, примитивно, быстро и без затрат дополнительного времени на открытие поисковых страниц машин интернета ... И, при этом - используются их колоссальные возможности индексации и интеллектуального поиска ... Современные механизмы взаимодействия с браузером - предполагают быстрое и не сфокусированное (на кнопке формы) действие - по нажатию клавиши Enter клавиатуры ... Приучаясь к удобствам - начинаешь машинально использовать Enter при поиске информации в интернете, но получаешь код 404 - страница не найдена ... Это начинает весьма напрягать и запутывать ...

Долгое время я не решался подступиться к изменению алгоритма работы формы поиска с текстовым вводом, путем добавления функции срабатывания по нажатию клавиши Enter ... Просто не знал, с чего начать ... Приведенные, в интернете, примеры кода - не только не впечатляли, но и пугали ... Первые же поиски выведут на современные фреймворки, типа Angular, React со встроенной привязкой данных, Vanilla JS и JQuery ... Если вы не работаете с фреймворками, этот путь - не лучшее начало ... Нам бы - что-нибудь попроще, типа обработка нажатия enter javascript средствами обычного простого JS, легким и доступным для понимания методом ...

Пример обычного кода формы с кнопкой ...
form name=MyForm ...
input type=text id=MyText ...
input type=button id=MyButton onclick=MyRun(); ...
/form ...
...
script ...
function MyRun() { ...
var tmptx=MyForm.MyText.value; ...
alert(tmptx); ...
} ...
/script ...
...
Здесь все предельно просто : введи текст, нажми на кнопку - получишь результат ... Обработка Enter - не будет работать (не задана) ...

Чтобы продублировать действие по кнопке - рекомендуется добавить обработку ввода по Enter в виде кода простого JS скрипта ... На странице Click button with JS via Enter in text box (нажатие кнопки на JavaScript через Enter в текстовом поле) - есть пример для простого кода взаимодействия скрипта, но не спешите радоваться, ибо здесь полно гвоздей, подводных камней и до фига ручной обработки драчевым напильником (flat bastard) ... Разберемся подробнее с этим примером ...
...
document.getElementById(MyText) ...
.addEventListener(keyup, function(event) { ...
event.preventDefault(); ...
if (event.keyCode === 13) { ...
document.getElementById(MyButton).click(); ...
} ...
});
...
Здесь - все почти понятно, как и неработоспособно - без доработки ...
# строка 2 : .addEventListener - даст ошибку, так как его значение : не определено или ноль ... Потому-что в первой строке надо было определить некую переменную var MyTmp = document.getElementById(*) - по которой и будет работать листенер (просмотрщик событий) MyTmp.addEventListener ...
# строка 3 : Третью непонятную строку - пока пропустить ...
# строка 4 : Четвертая - собственно сравнение : event.keyCode === 13, а является ли нажатая клавиша клавиатуры - Enter ? ... В примере - это запрашивается напрямую, но я не могу сказать точно : будет ли конструкция кода работать - без предварительного опроса состояния нажатия клавиш [или function(event) - должна быть вынесена / описана, как - отдельная функция] ...
# строка 5 : Пятая строка ... Если Enter нажат - программно нажать кнопку, а уж обработчик кнопки - выполнит возложенную на него функцию ...

Программное нажатие кнопки имеет смысл - только, если в этом есть явная необходимость ... Иначе - зачем так сложно ? ... Зачем идти через ж***, огородами - когда есть короткий путь ? ... Сразу запустите функцию, которая назначена кнопке - и дело с концом ... Зачем делать двойные преобразования, тратить процессорное время и путаться в переходах ? ... Наслаждайтесь работоспособным и не избыточным программным кодом ... Обратите внимание : когда функция прописывается в скрипте - она должна содержать ключевое слово : function MyRun() ; для вызова ее же из кода - достаточно написать : MyRun(); ...
if (event.keyCode === 13) { ...
MyRun(); ...
} ...

С этим разобрались ... Хорошо, теперь надо вникнуть в детали ... Как получить код нажатия клавиши ? ... KeyboardEvent свойство keyCode ... Нам уже дано достаточно программных средств, чтобы не только получить код, но и узнать его значение в разных кодировках, а также соблюсти кросс-браузерные решения совместимости ... Кстати, эта функция - кейлоггер в чистом виде ))) ... При работе с этой функцией, я (возможно, как и многие начинающие кодеры) впервые могут столкнуться и начать работать с передачей параметра в скобках функции JS [ до этого момента - как-то получалось обходится без него ))) ] ...
...
script ...
function MyKeyBoard(event) { ...
var xkbd = event.which || event.keyCode ...
if (xkbd === 13) { ...
MyRun(); ...
} ...
...
Отлично ... Нажатие кнопки клавиатуры Enter - отслеживается ... Функция нажатия кнопки - исполняется ... Самое главное : как запустить обработчик нажатия Энтер (ввод данных) ? ... Да - очень просто ... Так, легко и банально, что - просто изумительно ... В момент нажатия ENTER - фокус находится в текстовом поле, и именно на него - надо повесить обработку событий EVENT (в частности - обработку нажатия клавиш) ... Нужно назначить функцию обработчика - текстовому полю ввода (!!!) : form input type=text id=MyText onkeypress=MyKeyBoard(event); /form ... Правда, рекомендуется : для печатных букв и цифр - использовать onkeypress ; для функциональных клавиш - применять onkeyup или onkeydown ; хотя, на самом деле - все будет и так работоспособно ... Теперь - у нас есть для одного поля формы - два разных обработчика : стандартный (по кнопке) и альтернативный (по нажатию клавиши ввода / Энтер) ... Прикольно, но еще не все так гладко, как хотелось бы ...

Если используется JavaScript - то наверняка его код предназначен для работы в браузере интернета или в теле Web HTML страниц ... А, судя по их поведению - они ведут себя совершенно не так, как ожидается или хотелось бы ... А именно : Chrome, отправка формы по Enter, без onClick кнопки ... Не все браузеры (на самом деле, практически ни один из них) - не вызовут событие click на кнопке отправки, если вы на самом деле не нажмете эту кнопку ... Они вызовут событие submit в форме ... Когда дело касается событий клавиатуры - эта информация становится бесценной ... А, submit - делает, что ? ... Правильно (см. начало статьи) - перегружает страницу с сервера, с параметрами формы ... И, если сервер настроен отсекать не валидные запросы, типа : *htm?bla-bla-bla - то, лучшее, что можно получить в этом случае, это - redirect 404 Not Found ...

Хорошо ... Отправка формы - событие и метод submit ... Событие : submit ... Есть два основных способа отправить форму ... Нажать кнопку input type=submit или нажать Enter, находясь (фокус) на поле формы ... Оба действия - сгенерируют событие submit ... Обработчик может проверить данные, и если есть ошибки, показать их и вызвать event.preventDefault() - тогда форма не будет отправлена на сервер ... Форма не отправится благодаря return false ... form onsubmit=alert(сработка);return false ... Взаимосвязь между submit и click ... При отправке формы по нажатию Enter в текстовом поле, генерируется событие click на кнопке input type=submit ... Это довольно забавно, учитывая что никакого клика не было ))) ...

Вот, что значит : event.preventDefault(), упоминаемое в третьей строке первого примера ... Метод preventDefault() сообщает браузеру (или агенту вьюверу), что если событие не обрабатывается явно (например, выполняется с ошибками), его действие по умолчанию - не должно выполняться так, как обычно ... Однако - и это не единственный путь изменения поведения элементов в браузере ... Что значит onsubmit = return false в JavaScript, jQuery ? ... Можно ли сразу указать запрет отправки submit формы ? ... Можно ... form onsubmit=return false ... Когда return false - ваша форма не будет отправлена и не будет перенаправлена, а если она return true - ваша форма отправит и перенаправит (фактически является частью отправки) идентификатор, который вы упомянули в действии ...

JS Form Input Enter Key Event vs Button - обработка формы нажатием клавиши ввода.

Вот и подошли к заключительной части простейшей обработки Enter в коде скрипта JS веб страницы, где на самом деле - все легко и просто, хотя именно из-за правильной расстановки кавычек и закорючек - мне неоднократно не удавалось запустить скрипт в рабочем состоянии (из-за синтаксиса, но не из-за логики) ... Поэтому, здесь - я привожу, именно логику, так как ее наиболее трудно понять, ну а с синтаксисом, вы уж, как-нибудь - разбирайтесь сами ... Как, всегда - меня поражает, что при такой востребованности и проблемах с обработкой Enter - не так много хороших рабочих примеров ... И, как всегда - мне доставляет истинное удовольствие писать чистый, ясный и работоспособный код программирования на JavaScript ... Необязательно повторять весь пример - целиком : понимая суть - вы можете взять те участки / функции, которые наиболее подходят для решения ваших задач и модифицировать их - под свои потребности ...

form name=MyForm onsubmit=return false; ...
input type=text id=MyText onkeypress=MyKeyBoard(event); ...
input type=button id=MyButton onclick=MyRun(); ...
/form ...
...
script ...
// Выполнится при нажатии клавиши Enter ...
function MyKeyBoard(event) { ...
var xkbd = event.which || event.keyCode ...
if (xkbd === 13) { ...
MyRun(); ...
} ...
// Выполнится при нажатии кнопки Button ...
function MyRun() { ...
var tmptx=MyForm.MyText.value; ...
alert(tmptx); ...
} ...
/script ...

Январь, 2021 ...

Быстрый поиск по сайту :


Меню раздела, новости и новые страницы.

Главная страница сайта ...

Подключение камеры ... Проблема Android смартфон. Точка доступа. Подключение камеры по сети к ПК. ... Arduino. Краткий об ... Arduino. Краткий обзор языка и команд. На русском. Справочник в переводе. З ... Как конвертировать ... Как я нашел решение просто и бесплатно конвертировать 3GPP в MP3, используя ... Как сделать в Ubunt ... Как сделать в Ubuntu, Linux. Команды Программы Справка. make, сборка програ ... Установка системы W ... Драйвер. SSD диск. Жесткий диск VHD. Использование раздела при установке Wi ... Windows в VHD файл ... Система. Загрузка. Команда diskpart, vdisk - как использовать. Метка. Облас ... VHD - система и дис ... Виртуальный файл. Доступ к загрузчику. Программные компоненты. Меню. Настро ... Простой код JS. Кла ... Простой код JS. Клавиша Enter и нажатие кнопки формы. Event функция и событ ... Не работает клавиат ... Не работает клавиатура компьютера, ноутбука. Какие причины неисправности .. ... Интернет связь. Ско ... Интернет связь. Мобильный интернет. Скорость. Командная строка. Проблема св ... Переустановка Windo ... Windows нетбук - переустановка системы, с учетом рекомендаций 4PDA. Обновле ... Браузер, кеш интерн ... Сохраненные картинки, медиафайлы, пароли и история посещения сайтов - храня ... Драйвер NVidiа, как ... Чипсет mcp67 видео, сайт geforce vga ... Найти оборудование ... Работа вид ... Наложение картинок ... Картинка, HTML изображение. Как быстро наложить картинку на картинку. Обраб ... Как вставить штамп, ... Форматы изображений и картинок. Качество, размер файла, сжатие и цвета. Про ... Проблема WiFi телеф ... Связь. Сеть. Подключение. Сигнал wifi. Плохо ловит, только возле роутера. И ... Диск, раздел, секто ... Диск. Система. VHD файл. Запись. Программа BootIce. Сектор. MBR. Disk HDD. ... Программы восстанов ... Программы восстановления данных HDD. MBR, NTFS, GPT, HDD. Жесткий диск. Заг ... Виснет ПК Windows. ... Ошибка системы, диска или профиля Windows. Проблема файлов ПК. Сбой в работ ... Подсчет количества ... Скрипт обработки текстовых строк в файле. Счетчик уникальных слов. BAT, CMD ... Как просто проверит ... Как просто проверить, что код JS, JavaScript - написан и работает правильно ... Вход, выход звуково ... Микрофонный вход. Линейный выход. Перенаправления звука в ПК. Звуковая карт ... Часовой пояс. Настр ... Изменить часовой пояс. Display UTC. Time Zones. Записи реестра. Ekaterinbur ... Учим Алису Яндексов ... Алиса Яндекс - диалог, навык, приложение. Новые технологии Яндекс - как нау ... Ошибка файлов диска ... CHKDSK и Victoria - наиболее часто используемые программы исправления пробл ... Файл вирус в Window ... Файл вирус в Windows - как удалить своими руками ... Программы, loader, OEM ... Обзор программ для ... Программы и софт для работы с изображением веб-камер и видеорегистраторов а ... Системы DOS, Window ... Системы DOS, Windows. MBR и файл лоадера загрузки. Загрузка с диска. Загруз ... Установить Windows. ... Установить Windows. Параметры системы, как настроить. Панель настроек. Wind ... Установка WinXP в V ... Установка WinXP в VHD через USB флешку на SATA HDD SSD. Виртуальная система ... Android bluetooth - ... Беспроводная связь с блютуз гарнитурой - как настроить звук, как слушать му ... Приложения, обновле ... Для компьютера и смартфона. Бесплатные версии. Новости для пользователей. П ...


Просто и аскетично. © 2021 ТехСтоп Екатеринбург.

С 2016++ техническая остановка создается вместе с вами и для вас ...