У меня есть форма, которая принимает город в качестве входных данных, затем я использую jQuery для получения идентификатора этого местоположения с помощью API SongKick, затем я использую этот идентификатор для получения будущих событий в этом месте, также используя API SongKick и jQuery.
Проблема, с которой я столкнулся, заключается в том, что когда я вхожу в город и нажимаю «Отправить», первый вызов API SongKick никогда не возвращает результат, но если я снова нажимаю «Отправить» без изменения текста города, он работает просто отлично и работает каждый раз после этого с одним и тем же текстом города).
Любая помощь очень ценится.
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
});
});
}