来自输入字段值的 JavaScript 变量

JavaScript variable from inputfield value?

本文关键字:JavaScript 变量 字段 输入      更新时间:2023-09-26

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

基本上,我正在尝试使用谷歌地图创建一个简单的基于Web的导航系统。

正态变量如下所示:

var start =  [51.6111056367416, 0.08299685083337408];

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

所以我使用 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 数据库中获取新数据,并将新数据放入 Div map-directions并将相同的数据复制到map-txt输入字段中。

这也很好用。

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

var start =  [51.6111056367416, 0.08299685083337408];

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

我在地图上得到一个奇怪的位置,这是一个不正确的位置!

即使,输入字段的值与[51.6111056367416, 0.08299685083337408];完全相同

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

诀窍在于这一行(数据类型问题(:

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.

希望它能有所帮助,

准备一个数组,用于 ajax 调用的输入,其中包含来自 trim 函数的值,如下所示:

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

我所要做的就是:

var data = document.getElementById("map-txt").value;
var start = eval("[" + data + "]");