来自inputfield值的JavaScript变量?

时间:2014-12-17 13:22:46

标签: javascript jquery google-maps

我试图找到一种方法,允许我使用输入字段值设置和更新javascript变量。

基本上我正在尝试使用Google Map创建一个简单的基于Web的导航系统。

正常变量如下所示:

var start =  [51.6111056367416, 0.08299685083337408];

上面的代码工作正常。它将在Google Map上显示正确的位置。但是,我正在尝试动态设置和更新变量值(可能每隔几秒更新一次)。

所以我使用AJAX从MYSQL数据库中获取值,如下所示:

<script>

$(document).ready(function () {

    function load() {
        $.ajax({ //create an ajax request to load_page.php
            type: "GET",
            url: "location.php",
            dataType: "html", //expect html to be returned                
            success: function (response) {
                $("#map-directions").html(response);

                var input = document.getElementById("map-directions").innerHTML;
                document.getElementById("map-txt").value = document.getElementById("map-directions").innerHTML;


                setTimeout(load, 8000);



            }

        });
    }

    load();
});
</script>

,HTML就是这样:

<div id="map-directions"></div>
<input type="text" id="map-txt"  value="" />

所以上面的代码将每8秒运行一次,并从MYSQL数据库中获取新数据,并将新数据放入map-directions Div,并将相同的数据复制到map-txt输入字段。

这也可以。

现在,我遇到的问题是当我改变

var start =  [51.6111056367416, 0.08299685083337408];

var start = document.getElementById("map-txt").value;

我在地图上找到一个位置不正确的奇怪位置!

尽管inputfield的值与[51.6111056367416, 0.08299685083337408];

完全相同

有人可以就此问题提出建议吗?

3 个答案:

答案 0 :(得分:0)

技巧与此行(数据类型问题):

document.getElementById("map-txt").value = document.getElementById("map-directions").innerHTML;

您正在获取数据并放入一个保存为字符串变量的文本框。

简而言之。

var start =  [51.6111056367416, 0.08299685083337408]; //data type array

start[0]会给你51.6111056367416

其中

document.getElementById("map-txt").value = [51.6111056367416, 0.08299685083337408]

var start = document.getElementById("map-txt").value; //data type string

start[0]会为您5而不是51.6111056367416

希望它会有所帮助,

答案 1 :(得分:-2)

使用trim函数的值为ajax调用的输入准备一个数组,如下所示:

var test=document.getElementById("map-txt").value.trim(',');

答案 2 :(得分:-2)

我所要做的就是:

var data = document.getElementById("map-txt").value;

var start = eval("[" + data + "]");