gpt4 book ai didi

javascript - $.getJSON() 调用抛出错误

转载 作者:行者123 更新时间:2023-12-02 15:08:56 25 4
gpt4 key购买 nike

我无法弄清楚为什么当通过条件语句调用父函数时 .getJSON 会抛出错误。当 if 语句被注释掉时,似乎没有问题并且 .getJSON 被调用。但是,我希望用户完成输入(按 Enter 键表示)。

HTML

<div class="text-center searchBar">
<form action="">
<input type="text" id="searchText" />
</form>
</div>

<div class="container displayResults"> </div>

Javascript:

$(document).ready(function() {
$('#searchText').keyup(function(e) {
var searchItem = $('#searchText').val();
var link = 'https://en.wikipedia.org/w/api.php?action=query&prop=extracts|info&exintro&exlimit=max&inprop=url&generator=search&gsroffset=&format=json&formatversion=2&callback=?&gsrsearch=' + searchItem;

if(e.which == 13) { //if user returns enter key
wikiCall(link);
}
});
});

function wikiCall(wikiLink) {
$.getJSON(wikiLink, function(searchResults) {
for (var i = 0; i < searchResults.query.pages.length; i++) {
$(".displayResults").append("<div class='searchResultsContainer'><span style='font-weight:bold; font-size:150%; margin-bottom:100px;'>" + searchResults.query.pages[i].title + "</span><br></br>" + searchResults.query.pages[i].extract + "</div>");
$(".displayResults").append("<br>");
}
}).fail(function(jqxhr,textStatus,error){
alert(textStatus+": "+error);
});
}

最佳答案

我测试了你的软件,只得到一个错误:keyup 而不是 keypress 加上停止传播。

在下面的代码中:

function wikiCall(wikiLink) {
$.getJSON(wikiLink, function(searchResults) {
for (var i = 0; i < searchResults.query.pages.length; i++) {
$(".displayResults").append("<div class='searchResultsContainer'><span style='font-weight:bold; font-size:150%; margin-bottom:100px;'>" + searchResults.query.pages[i].title + "</span><br></br>" + searchResults.query.pages[i].extract + "</div>");
$(".displayResults").append("<br>");
}
}).fail(function(jqxhr,textStatus,error){
alert(textStatus+": "+error);
});
}
$(function () {
$('#searchText').keypress(function(e) {
var searchItem = $('#searchText').val();
var link = 'https://en.wikipedia.org/w/api.php?action=query&prop=extracts|info&exintro&exlimit=max&inprop=url&generator=search&gsroffset=&format=json&formatversion=2&callback=?&gsrsearch=' + searchItem;

if(e.which == 13) { //if user returns enter key
wikiCall(link);
e.preventDefault();
}
});
});
<script src="http://code.jquery.com/jquery-1.11.3.js"></script>


<div class="text-center searchBar">
<form action="">
<input type="text" id="searchText" />
</form>
</div>

<div class="container displayResults"> </div>

键入字符时的事件顺序是:keydown 、 keypress 、 keyup 。

对于前两个事件,您可以阻止,但无法阻止在 keyup 事件上键入的字符。

keyup事件是你监听的最后一个事件,你只能说:好吧,这是我采取行动的 Angular 色,但我无法阻止这个 Angular 色的效果,就像表单提交一样。

当您键入新行时,三个事件的结果是:

keydown keyCode=13 which=13 charCode=0

按键 keyCode=13 which=13 charCode=13

keyup keyCode=13 which=13 charCode=0

关于javascript - $.getJSON() 调用抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34909900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com