Javascript 按Enter键进行搜索

Javascript 按Enter键进行搜索,javascript,Javascript,我想,当按下回车按钮时,应用程序将搜索一个城市,现在的操作是通过按下搜索按钮开始的。下面是我的代码: const ENTER_KEY_CODE = 13; document.querySelector('#city').addEventListener('keyup', function(e) { if (e.keyCode === ENTER_KEY_CODE) { var city = $(this).val(); if (city !== '') {

我想,当按下回车按钮时,应用程序将搜索一个城市,现在的操作是通过按下搜索按钮开始的。下面是我的代码:

const ENTER_KEY_CODE = 13;
document.querySelector('#city').addEventListener('keyup', function(e) {
  if (e.keyCode === ENTER_KEY_CODE) {

        var city = $(this).val();
        if (city !== '') {

            $.ajax({

                url: 'http://api.openweathermap.org/data/2.5/weather?q=' + city + "&units=metric" +
                    "&APPID=bb037310921af67f24ba53f2bad48b1d",
                type: "GET",
                dataType: "json",
                success: function (data) {
                    var widget = show(data);

                    $("#show").html(widget);

                    $("#city").val(' ');
                }

            });

        } else {
            $("error").html('Field cant be empty')
        }

    };
});

这是一个示例代码,请使用这是一个参考代码

HTML代码

<input id="InputEnter" >
var input = document.getElementById("InputEnter");
input.addEventListener("keyup", function(event) {
  event.preventDefault();
  if (event.keyCode === 13) {
   $(document).ready(function () {

$('#submitWeather').click(function () {

    var city = $("#city").val();
    if (city !== '') {

        $.ajax({

            url: 'http://api.openweathermap.org/data/2.5/weather?q=' + city + "&units=metric" +
                "&APPID=bb037310921af67f24ba53f2bad48b1d",
            type: "GET",
            dataType: "json",
            success: function (data) {
                var widget = show(data);

                $("#show").html(widget);

                $("#city").val(' ');
            }
  }
});

这应该行得通。我假设您的ajax请求是正确的

document.querySelector('#submitWeather').addEventListener('keypress', function(e){
        if(e.which === 13){
            // your ajax request
        }
    })

您只需将
keyup
事件侦听器添加到
input
元素。调用处理程序时,只需检查
e.keyCode
,查看是否按了enter键。如果是,做你自己的事:

const ENTER\u KEY\u code=13;
document.querySelector(“#textEl”).addEventListener('keyup',函数(e){
如果(e.keyCode===输入\u键\u码){
var city=$(this.val();
变量url=`http://api.openweathermap.org/data/2.5/weather?q=${encodeURIComponent(city)}&units=metric&APPID=bb037310921af67f24ba53f2bad48b1d`;
如果(城市!=''){
log(`makeajax调用${url}`);
//在这里打电话
}否则{
console.log('City不能为空!');
}
}
});


使用表单的
submit
事件,而不是文本输入上的按键事件或按钮上的单击事件。+1用于切换到表单内部的
,然后使用jQuery的
submit()
作为表单提交处理程序。更好的可访问性,您也将获得onkeypress事件。我如何在我的JS中添加此代码的可能重复?我需要更改什么?尝试编辑的代码后,我们将进一步讨论$(document).ready(函数(){$('submitWeather').addEventListener('keyup',函数(e){if(e.keyCode==13){var city=$(“#city”).val();if(city!=''{.ajax({我可以添加此代码,但它不起作用。怎么了?我更新了代码。我认为这应该可以帮助您解决问题。请告诉我。我有一个错误“Uncaught TypeError:无法读取属性'addEventListener'”。您也可以发布HTML吗?