2017-04-18 58 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) 
}