首页 文章

将变量设置为ajax url

提问于
浏览
0

我正在尝试设置 ajax URL to variable 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的值时,它显示为undefined .

还有一个错误是无法在blog.js:7中读取null的属性'elements'

我想要的是最后的网址必须等于这样的东西 -

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

1 回答

  • 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)
     }
    

相关问题