javascript全局变量undefined

Man*_*uro 2 javascript

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

var globalVar;
Run Code Online (Sandbox Code Playgroud)

我有一个文本字段

<input type="text" id="myInput" onkeydown="checkKey(this)" onkeypress="checkKey(this)"/>
Run Code Online (Sandbox Code Playgroud)

在函数checkkey中,我为它分配了一些值:

globalVar=document.forms[0].elements("myInput").value;
Run Code Online (Sandbox Code Playgroud)

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

param += globalVar;
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 6

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

globalVar=document.forms[0].elements.myInput.value;
Run Code Online (Sandbox Code Playgroud)

...要么

globalVar=document.forms[0].elements["myInput"].value;
Run Code Online (Sandbox Code Playgroud)

...但是更好的是,通过你正在调用的方式checkKey,只需声明一个被调用的参数input或者其他用法

globalVar=input.value;
Run Code Online (Sandbox Code Playgroud)

...因为你正在this进入checkKey.

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

如果您var globalVar;处于全局范围(在所有函数之外),那么它是一个全局变量.如果该var语句在函数内部,则它是局部变量.你还没有给我们足够的上下文知道在哪里var的,但如果它是在全局范围内,你成功地将其值设置,以后你选择了它,它就会被设置.

使用长形式的现场演示 | 使用参数进行现场演示