首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将先前定义的变量传递给Javascript函数

将先前定义的变量传递给Javascript函数
EN

Stack Overflow用户
提问于 2016-02-28 21:16:18
回答 3查看 232关注 0票数 0

我在使用Javascript事件将参数传递到Javascript函数时遇到了问题。我想要一种将先前定义的变量传递给函数的方法。我的Javascript代码目前看起来如下:

代码语言:javascript
复制
<script type="text/javascript">
    var field1 = "Field 1 is selected";
    var field2 = "Field 2 is selected";

    function fieldSelect(field) {
        var message = field;
        document.getElementById("explain").innerHTML = message.toString();
    }

</script>

HTML如下所示:

代码语言:javascript
复制
...
<input type="text" id="field1" onFocus="fieldSelect(field1)">
<input type="text" id="field2" onFocus="fieldSelect(field2)">
...
<p id="explain"></p>

因此,当您单击一个字段时,字符串变量将被传递到函数中,段落标记将显示表单下选择的字段。

EN

Stack Overflow用户

回答已采纳

发布于 2016-02-28 21:53:27

尽管达山为你提供了一个解决办法,但你的问题却是另一回事。

这个页面中的HTML结构如下所示:

代码语言:javascript
复制
<html>
<head>
    <script type="text/javascript">
    var field1 = "Field 1 is selected";
    var field2 = "Field 2 is selected";

    function fieldSelect(field) {
        var message = field;
        document.getElementById("explain").innerHTML = message.toString();
    }
    </script>
<head>
<body>
    <form>
        <input type="text" id="field1" onFocus="fieldSelect(field1)">
        <input type="text" id="field2" onFocus="fieldSelect(field2)">
    </form>
    <p id="explain"></p>
</body>

现在,您的脚本标记被放置在head中,您创建了两个名为field1field2的变量。

稍后,在body中,使用in field1field2创建两个输入元素。浏览器使用id自动创建变量,这些变量引用带有id的元素。在head中,您将field1设置为"Field 1 is selected",但是一旦在body中使用id field1创建了输入元素,field1的值就会被覆盖,field1引用输入元素。

这就是为什么在您的fieldSelect函数中,您尝试打印字符串"Field 1 is selected",但是最终打印了输入元素[object HTMLInputElement]

您可以做的是将脚本标记移到body元素的内部和末尾,或者如果脚本标记必须停留在头部,则应该给输入元素或变量不同的名称。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35688368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档