gpt4 book ai didi

javascript - getJSON 仅在第二次调用时给出结果

转载 作者:行者123 更新时间:2023-12-02 19:49:09 26 4
gpt4 key购买 nike

我有一个以城市作为输入的表单,然后我使用 jQuery 使用 SongKick API 获取该位置的 ID,然后使用该 ID 获取该位置的 future 事件,也使用 SongKick API和 jQuery。

我遇到的问题是,当我输入一个城市并点击提交时,对 SongKick API 的第一次调用永远不会返回结果,但如果我再次点击提交而不更改城市文本,它就可以正常工作(并且此后每次都可以使用相同的城市文本)。

非常感谢任何帮助。

HTML 代码:

<form action="#" onsubmit="doSearch(this.locationtext.value);"> 
<input onfocus="this.value=''" type="text" size="60" name="locationtext" value="Enter a City" />
<input type="submit" value="Make it rain" />
</form>

JavaScript 代码:

function doSearch(locations) {

jQuery.getJSON("http://api.songkick.com/api/3.0/search/locations.json?query=" + locations + "&apikey=eRACBJEh2i3NOewK&jsoncallback=?", function(locdata){
// THIS CODE NEVER RUNS THE FIRST TIME
// get metro area ID from SongKick result
var getID = locdata.resultsPage.results.location[0].metroArea.id;

// pass ID to another SongKick API call to get events at location
jQuery.getJSON("http://api.songkick.com/api/3.0/metro_areas/" + getID + "/calendar.json?apikey=eRACBJEh2i3NOewK&jsoncallback=?", function(data){
// do whatever with result
});
});

}

最佳答案

在阻止表单的提交事件后,您必须检查输入值:

<form action="#" id="doSearch"> 
<input onfocus="this.value=''" type="text" size="60" name="locationtext" value="Enter a City" />
<input type="submit" value="Make it rain" />

jQuery(function($){


$("#doSearch").submit(function(e){

e.preventDefault();//prevent the form to be submitted

var location = $(e.target).find('[name="location"]').val();

//do what you need with location

});

})

关于javascript - getJSON 仅在第二次调用时给出结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9527888/

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