Javascript 尝试在IE8中获取表单值时未定义

Javascript 尝试在IE8中获取表单值时未定义,javascript,internet-explorer,forms,mootools,Javascript,Internet Explorer,Forms,Mootools,我有一个嵌套在div中的输入表单,定义如下: <div class="login-input"> <input type="text" name="userId"> </div> 到目前为止,我测试过的所有浏览器都可以使用Chrome、FF、Safari,但在IE8中,以下代码行会导致问题: var user = document.getElementsByName(inputTitle)[0].value; 我在IE开发工具中验证了inputTitl

我有一个嵌套在div中的输入表单,定义如下:

<div class="login-input">
  <input type="text" name="userId">
</div>
到目前为止,我测试过的所有浏览器都可以使用Chrome、FF、Safari,但在IE8中,以下代码行会导致问题:

var user = document.getElementsByName(inputTitle)[0].value;
我在IE开发工具中验证了inputTitle的值为userId。问题是

document.getElementsByName(inputTitle)[0];
没有定义

我也做了一些游戏。将此添加到watch将返回看起来像有效对象的内容:

// Returns valid object
document.getElementsByName(inputTitle);

// Returns null
document.getElementsByName(inputTitle).item(0);
document.getElementsByName(inputTitle).value;
和往常一样,提前谢谢你

编辑:证明我没有疯。。。。


你试过使用.innerHTML吗

希望它能起作用

我建议改用id和getElementById。这应该更加可靠和快速;任何支持JavaScript的东西都应该支持getElementById


谷歌搜索表明IE和getElementsByName真的相处得不太好。我通常使用ID属性来引用特定的元素,很少使用原始JavaScript进行DOM争用,因此我无法说出具体的错误所在。

尝试使用JQuery获取元素:

$("input[@name='inputTitle']").click(
这里有一个很好的链接,可以提供更多信息

我做了一个快速测试用例,以证明该代码在IE8上测试有效

做一个:

var user = document.getElementsByName('userId')[0];
返回[object HTMLInputElement]

也就是说,你传递的输入信息没有传递正确的东西

也就是说,既然您使用的是MooTools,为什么不采用MooTools的方式:

document.getElement('input[name=userId]').get('value');

示例:

这很奇怪,对我来说,getElementsByName'…'[x]在IE 8上运行良好并返回预期的对象。尝试清除缓存。谢谢大家的回答!当我回到我的开发机器时,我会尝试一下。@Delta-我附上了开发工具的屏幕截图,显示它不工作。我不知道发生了什么事;但是@Oskar的建议确实奏效了,所以我没有抱怨。干杯。嘿@Oskar,我把这个作为答案,因为你的建议是正确的。无论如何,我宁愿这样做;我只是没想到去读getElement方法——所以谢谢你。也就是说,第一行不起作用。请看我附上的屏幕截图,注意传入的变量有一个“userId”值。嘿@Dave你找到解决方案了吗?@knurdy,不幸的是没有。我只是采用了奥斯卡的方法。嘿@Kyaw,我尝试了一下,但运气不好。感谢您抽出时间发布答案。
document.getElement('input[name=userId]').get('value');