javascript - 有没有办法在没有显示有效输入时显示消息?

标签 javascript api error-handling

这一切仍然很新,但我想知道是否有一种方法可以在没有显示有效输入(404 消息)时显示错误消息。

如果输入框中没有输入任何内容,则错误消息有效,但如果用户没有正确拼写“London”,控制台会显示 404 消息,并且我不知道如何显示错误消息任何帮助将不胜感激,谢谢。

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

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

    var city = $("#city").val();//declares variable name "city"

    if(city !== ''){ //if the input box is not empty

    $.ajax({

        //first part, web address. second part, global variable. third part, UK uses metric. fourth part, API key.
        url: 'http://api.openweathermap.org/data/2.5/weather?q='+city+"&units=metric"+"&APPID=???",
        type: "GET",
        datatype: "JSONP", //JSON with padding
        success: function(data){
            //console.log(data); test worked
            var widget = show (data);

            $("#show").html(widget);
            $("#city").val('');} // empties input box when finished
            });
                    }   
        else if(city == ''){
            $("#error").html('Cannot Be Empty').fadeOut(10000);
        }
        else (){            
        }

});

});

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

最佳答案

使用 $.ajax 错误处理程序,它将捕获未找到或未经授权等,如下所示:

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

  var city = $("#city").val(); //declares variable name "city"

  if(city !== ''){ //if the input box is not empty

    $.ajax({
        url: 'http://api.openweathermap.org/data/2.5/weather?q='+city+"&units=metric"+"&APPID=???",
        type: "GET",
        datatype: "JSONP", //JSON with padding
        success: function(data){
            
            // You could check the API response as well
            if (data.cod == 200){ // API specifies "cod" for the response code.
              $("#show").html(data);
              $("#city").val('');
            }else{
              $("#error").html(data.cod+" "+data.message).fadeOut(10000);
            }
        },
        error: function(jqXHR, textStatus, errorThrown){
        	$("#error").html(textStatus+" "+errorThrown).fadeOut(10000);
        }
    });
  }   
  else if(city == ''){
    $("#error").html('Cannot Be Empty').fadeOut(10000);
  }

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div>
  <input type="text" id="city" value="Londron" />
  <button id="submitweather">Check weather</button>
</div>

<h2>Result</h2>
<div id="show"></div>

<h2>Error</h2>
<div id="error"></div>

关于javascript - 有没有办法在没有显示有效输入时显示消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59215601/

相关文章:

javascript - edgesData.forEach 不是 Angular 中的函数

javascript - MongoDB中设计Shift schema的疑惑

php - 引用 - 这个错误在 PHP 中意味着什么?

javascript - 如何将Blob写入本地文件?

javascript - 如何动态向表中插入行

javascript - 在 Ember.js HTMLbars 模板中输出 Controller 变量

python-2.7 - 如何使用 python 和 REST API 调用将动态 VHD 上传到 Azure?

java - 无法编译简单的hbase java程序

r - 为什么 R 说 "argument is of length zero"以及如何解决这个问题?

angular - 通过自定义 ErrorHandler 出现错误时显示自定义消息