javascript全局变量undefined

时间:2011-12-16 09:05:29

标签: javascript

我有一个javascript全局变量的问题,假设我有以下

var globalVar;

我有一个文字字段

<input type="text" id="myInput" onkeydown="checkKey(this)" onkeypress="checkKey(this)"/>

在功能检查键中,我为其指定了一些值:

globalVar=document.forms[0].elements("myInput").value;

我检查了全局变量值是否已更改为警报。 当我尝试在另一个函数中使用globalVar时,我发现它的值未定义。另一个功能有:

param += globalVar;

1 个答案:

答案 0 :(得分:6)

elements个实例的form属性不是函数,它是一个对象。使用

globalVar=document.forms[0].elements.myInput.value;

...或

globalVar=document.forms[0].elements["myInput"].value;

...但更好的是,通过调用checkKey的方式,只需声明一个名为input或其他的参数并使用

globalVar=input.value;

...因为您将this传递给checkKey

如果您要按名称访问表单字段,请使用name属性而不是id属性(尽管id可用于许多浏览器孔)。

如果var globalVar;处于全局范围(在所有函数之外),那么它是一个全局变量。如果var语句在函数内部,则它是局部变量。您没有给我们足够的上下文来了解var的位置,但如果它在全局范围内,并且您成功设置了它的值,稍后您检查它,设置

Live demo using the long form | Live demo using the argument