2010-10-14 71 views
4

我有这样的事情HTML结构:检索在Javascript形式的“name”属性,而输入名称为“名”的存在

<form name="myvalue" id="hello"> 
     <input type="text" name="name" /> 
    </form> 

我想找回在Javascript形式的name属性,具有跨浏览器解决方案

显然,

document.getElementById("hello").name 

不会工作,因为它会返回相应的输入对象。

在Chrome浏览器,下面的代码工作,但我没有成功找到等价的Internet Explorer 8

document.getElementById("hello").getAttribute("name") 

提前感谢!

弗雷德里克

+0

所以,问题是,你试图得到哪个名称属性?一个是表格?或者用于文本输入的那个? – 2010-10-14 21:57:33

+0

目的它检索“myvalue”表单的名称属性值 – 2010-10-14 22:25:14

+0

有趣的是,getAttribute适用于所有浏览器。我在google.com上尝试了document.getElementById('tsf')。getAttribute('name'),它返回了表单的名称(f)。我认为它可能与怪癖/标准模式有关,但它适用于浏览器和文档模式的所有组合。你能发布完整的html,包括doctype定义吗? – 2010-10-14 22:28:44

回答

9

我觉得这oughtta工作

document.getElementById("hello").attributes["name"].value; 

测试在IE8,这是我的一切OK。你可能需要做一些浏览器检查,并根据需要选择你的方法。

编辑:实际上,您的示例在IE8中也适用于我。但不是ie7。

+0

噢整齐,没有意识到'属性'已命名属性。 – 2010-10-14 22:12:11

+0

这解决了问题! – 2010-10-14 22:24:17

+0

虽然我会在IE 7上试试这个;-) – 2010-10-14 22:24:36

0

试试这个:

如果
function getFormName (formElement) { 
    if (!formElement) return; 
    var a=formElement.attributes; 
    for (var i=a.length; i--;) { 
    if (a[i].name=='name') return a[i].value; 
    } 
} 

不知道它会在IE浏览器。应该在其他地方工作。

相关问题