OnScreen键盘在Internet Explorer中无法正常运行

时间:2012-06-06 08:26:48

标签: javascript html internet-explorer

我必须实现一个简单的屏幕键盘,用户必须首先点击10个输入框中的一个(以使其聚焦),然后使用屏幕键盘为聚焦输入添加字母。

我遇到的问题是在IE(7,8和9)中,每次都将字母添加到第5个输入框,无论哪个输入框尝试聚焦。

有人可以澄清为什么会这样吗?

下面我提供的代码在Chrome和Firefox中完美运行。

<img onClick='addIt("q")' src = 'images/alphabet/q.png' style='width:50px;height:50px;cursor:pointer'></div>

单击图像时,它调用JS函数“addIt('q')”,其定义如下:

function addIt(key){
  selectedElement = (document.forms["foo"].elements["focusedField"].value!='')?document.forms["foo"].elements["focusedField"].value:"bar";
  d = document.forms["foo"].elements[selectedElement];
  d.value =  d.value + key;
}

在点击输入框时会分配focusedField,输入框是所需功能的密码类型(用户不应该看到他输入的内容)。

<input type='password' name='4_1' id = '4_1' onFocus='document.forms["foo"].elements["focusedField"].value = this.name'/>

1 个答案:

答案 0 :(得分:0)

那是因为您使用的是以数字开头的字段名称。

当您使用document.forms["foo"].elements["4_1"]时,Internet Explorer会将其解释为document.forms["foo"].elements[4],并为您提供表单中的第五个元素。

只需让字段名称以字母开头,例如:

<input type='password' name='x4_1' id='x4_1' ...