Клавиша Enter не работает как кнопка

Я перепробовал весь код, который мог, и так и не понял, как это сделать, когда я нажимаю <i> или когда я нажимаю Enter, он работает. Мне действительно нужна помощь. Спасибо!

$('#update').click(function upd() {
	loadChannel($('#chnlname').val());
});

var input = document.getElementById("chnlname");

input.addEventListener("keyup", function(event) {
  	if (event.keyCode === 13) {
    loadChannel($('#chnlname').val());
  	}
});
<html>
  <head>
    <link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  </head>
  <body>
    <div class = "Search1">
		  <div class = "inputWithIcon">
			  <input type = "text" placeholder = "Channel ID" id = "chnlname" class = "Input2"></input>
				<i class = "fa fa-search" aria-hidden = "true" id = "update" onclick = "upd()"></i>
		  </div>
		</div>
   </body>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
27
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

1- добавьте свой js-код в метод готовности документа 2- не нужно указывать обработчик кликов в html-коде, достаточно $ ('# update'). Click.

полный код: https://codepen.io/peker-ercan/pen/xaemMr

js;

$(document).ready(function () {

        $('#update').click(function upd() {
            loadChannel($('#chnlname').val());
        });
        function loadChannel() {
            console.info("loading channel");
        }
        var input = document.getElementById("chnlname");

        input.addEventListener("keyup", function (event) {
            if (event.keyCode === 13) {
                loadChannel($('#chnlname').val());
            }
        });
    });

html:

 <div class = "Search1">
    <div class = "inputWithIcon">
        <input type = "text" placeholder = "Channel ID" id = "chnlname" class = "Input2"></input>
        <i class = "fa fa-search" aria-hidden = "true" id = "update"></i>
    </div>
</div>

Клавиша Enter по-прежнему не работает. Однако в консоли у него был «канал загрузки», я считаю, что он почему-то не загружает текст в поле.

MtnBros 23.09.2018 22:18

@MtnBros Я написал имитацию метода loadChannel, который печатает «канал загрузки», чтобы я мог проверить, работает ли он. Я думал, у вас есть реализация этого метода в вашем коде.

Ercan Peker 23.09.2018 22:27

Я разместил свой код не в том месте, что означает, что он не работает. Большое спасибо за Вашу помощь!

MtnBros 23.09.2018 22:42

1) Убедитесь, что ваша функция щелчка определена и доступна при загрузке DOM. Похоже, ваша функция upd(){} недоступна в глобальном контексте. Хотя это не соответствует лучшим практикам, вы можете сделать это, привязав функцию щелчка к объекту окна. См. Скрипку: https://jsfiddle.net/js03rq2b/42/

2) Вы вызвали upd(){} в HTML через onclick = "upd()", одновременно пытаясь добавить прослушиватель событий в JavaScript. Используйте один из этих методов, но не оба.

3) Кроме того, если вы привяжете обработчик кликов к тегу <button> вместо тега <i>, он также ответит на пробел и клавишу ВВОД. По возможности используйте поведение браузера по умолчанию, используя семантическую разметку.

Надеюсь, это поможет.

Другие вопросы по теме