我有一个javascript全局变量的问题,假设我有以下
var globalVar;
我有一个文字字段
<input type="text" id="myInput" onkeydown="checkKey(this)" onkeypress="checkKey(this)"/>
在功能检查键中,我为其指定了一些值:
globalVar=document.forms[0].elements("myInput").value;
我检查了全局变量值是否已更改为警报。
当我尝试在另一个函数中使用globalVar
时,我发现它的值未定义。另一个功能有:
param += globalVar;
答案 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