使用JSON文件中的变量(字符串)填充文本区域

时间:2015-04-06 01:24:53

标签: javascript html html5

当用户按下按钮时,我需要程序使用API​​(JSON)中的字符串变量填充文本字段。

这是我所拥有的,但它不起作用:

<label for="weatherYVR"></label>
<input name="weatherYVR" type="text" id="weatherYVR" value="" size="45" />

<button onclick="weatherYVR">YVR Weather</button>
<script>
function weatherYVR() {

    function fillText(x) {
        document.getElementById("weatherYVR").value = x
    }

    jQuery(document).ready(function($) {
        $.ajax({
            url : "http://api.wunderground.com/api/XXXXXAPIKEYXXXXXX/geolookup/conditions/q/YVR.json",
            dataType : "jsonp",
            success : function(parsed_json) {
                var location = parsed_json['location']['city'];
                var weather = parsed_json['current_observation']['wind_string'];
                fillText(weather)
            }
        });
    });
}
</script>

1 个答案:

答案 0 :(得分:2)

我在你的代码中修改了一些东西。由于你使用jQuery,我删除了一些基本的javascript并用jQuery对应的替换它。

    <label for="weatherYVR"></label>
    <input name="weatherYVR" type="text" id="weatherYVR" value="" size="45" />

    <button onclick="weatherYVR()">YVR Weather</button>
    <script>

    function weatherYVR() {
        jQuery.ajax({
            url : "http://api.wunderground.com/api/XXXXXAPIKEYXXXXXX/geolookup/conditions/q/YVR.json",
            dataType : "jsonp",
            success : function(parsed_json) {
                var location = parsed_json['location']['city'];
                var weather = parsed_json['current_observation']['wind_string'];
                jQuery('#weatherYVR').val(weather);
            }
        });
    }
    </script>

您的代码中存在一些差异,例如将jQuery标识符从$更改为jQuery。另外,你的功能结构有点偏。例如,行jQuery(document).ready(function($) {...});在文档完全加载时运行,所以为什么要在函数内部执行此操作?此外,fillText()的函数声明有点不必要,定义它的位置是非正统的如果不是不正确的javascript 编辑:它有效,但是a bit wonky as described here 即可。只需看看文档就可以了解事情。总的来说,你似乎有正确的想法。