【发布时间】:2016-01-22 05:25:53
【问题描述】:
当通过条件语句调用父函数时,我无法弄清楚为什么 .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);
});
}
【问题讨论】:
-
您可能想尝试禁用表单提交事件。
$('.searchBar form').on('submit', function(e) { e.preventDefault(); return false; });避免在用户按下回车时提交表单。在将数据附加到正文之前,还要检查响应是否具有query键。 -
@LucasFerreira 谢谢,避免在按下输入键时提交表单。
-
@fzxt .fail() 并没有给我太多帮助来破译错误是什么。显示的警报是:错误:错误
标签: javascript jquery html api getjson