我正在尝试构建一个使用openweathermap的api的小网站。小网站将有一个邮政编码框和一个用于按邮政编码搜索的提交按钮,它还有一个城市文本框和一个按城市搜索的提交按钮。这是我到目前为止所拥有的;我将提交代码,我也会将您发送到我的jsfiddle。
编辑:我遇到的具体错误是 - “未捕获的ReferenceError:邮政编码未定义”
编辑编辑:多个问题,但最大的问题是区分大小写,答案在下面解决了。
如果api相关,可以找到here。
<body>
Zipcode: <input type="number" id="myZip" min="11111" max="99999" value="00000"/>
<input type="button" value="Search by Zipcode" onclick="getWeatherbyZip()"/>
<br>
City: <input type="text" id="myCity" value="Enter city"/>
<input type="button" value="Search by City" onclick="getWeatherByCity()"/>
<script>
event.preventDefault();
function getWeatherbyZip()
{
var zipCode = getZip();
var req = new XMLHttpRequest();
req.open("GET", "http://api.openweathermap.org/data/2.5/weather?zip="+zipcode+",us&appid=fa7d80c48643dfadde2cced1b1be6ca1"+key, false);
req.send(null);
console.log(JSON.parse(req.responseText));
}
function getZip()
{
return document.getElementById("myZip").value;
}
function getWeatherByCity()
{
var city = getCity();
var req = new XMLHttpRequest();
req.open("GET", "http://api.openweathermap.org/data/2.5/weather?q="+city+",us&appid=fa7d80c48643dfadde2cced1b1be6ca1"+key, false);
req.send(null);
console.log(JSON.parse(req.responseText));
}
function getCity()
{
return document.getElementById("myCity").value;
}
</script>
</body>
答案 0 :(得分:1)
Javascript区分大小写,您声明了一个混合大小写var zipCode
,但在网址字符串zipcode
中使用了全小写变量。
尝试:
function getWeatherbyZip()
{
var zipCode = getZip();
var req = new XMLHttpRequest();
req.open("GET", "http://api.openweathermap.org/data/2.5/weather?zip="+zipCode+",us&appid=fa7d80c48643dfadde2cced1b1be6ca1"+key, false);
req.send(null);
console.log(JSON.parse(req.responseText));
}
答案 1 :(得分:0)
首先,在代码中放置event.preventDefault();
毫无意义。而且,在调用函数时无需添加关键字function
。你应该
var zipCode = getZip();
var city = getCity();
而不是
var zip = function getZip();
var city = function getCity();