2017-04-18 126 views
0

我正在尝试设置ajax URL to variable res将变量设置为ajax url

变量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, 

当我检查它显示为未定义控制台资源的价值。

还有一个错误是在blog.js无法读取空 的特性“元素”:7

我要的是最终URL必须等于像这个 -

http://api.openweathermap.org/data/2.5/weather?q=FORMDATA&units=metric&appid=MYKEY

回答

0

您的代码中存在逻辑错误。在第一行:

window.onload = loadWeather(); 

您拨打电话在网页加载,这意味着该功能将立即之前的任何其他JavaScript代码调用的函数loadWeather。这时你还没有分配变量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) 
}