我试图将 ajax网址设置为变量res 。
变量res是不同字符串的组合。 您可以查看代码。
HTML
<form id="frm1">
<input type="text" name="fname" value="" placeholder="Update Location">
</form>
<button class="btn btn-default pull-right" onclick="loadWeather()"type="button">
Search
</button>
我在这里尝试获取表单中的文字。
的.js
window.onload = loadWeather();
var part = "http://api.openweathermap.org/data/2.5/weather?q=";
var a = encodeURI(part);
var b = document.getElementById("frm1");
var text = b.elements[0].value;
var urll = "&units=metric&appid=MYKEY";
var c = encodeURI(urll);
var res = a + text + c;
function loadWeather() {
$.ajax({
url: res,
当我在控制台中检查res的值时,它显示为未定义。
另一个错误是无法读取属性&#39;元素&#39;为null 在blog.js:7
我想要的是最后的网址必须等于这样的内容 -
http://api.openweathermap.org/data/2.5/weather?q=FORMDATA&units=metric&appid=MYKEY
答案 0 :(得分:0)
您的代码中存在逻辑错误。在第一行:
window.onload = loadWeather();
您正在页面加载时调用函数loadWeather
,这意味着此函数将在任何其他javascript代码之前立即调用。此时您尚未分配res
变量,稍后将在调用函数后填充该变量。
您必须在变量赋值后调用该函数。例如,像这样的东西可以工作:
// window.onload = loadWeather();
var part = "http://api.openweathermap.org/data/2.5/weather?q=";
var a = encodeURI(part);
var b = document.getElementById("frm1");
var text = b.elements[0].value;
var urll = "&units=metric&appid=MYKEY";
var c = encodeURI(urll);
var res = a + text + c;
loadWeather()
function loadWeather() {
console.log(res)
}