Javascript 具有名称为“”的子输入的窗体的抓取id;id";
所以我遇到了一个奇怪的问题。。。 我想获取一个表单的id,比如:Javascript 具有名称为“”的子输入的窗体的抓取id;id";,javascript,forms,input,Javascript,Forms,Input,所以我遇到了一个奇怪的问题。。。 我想获取一个表单的id,比如: <form id="test"> <input name="id" type="hidden" value/> </form> 但是运行document.getElementById(“test”).id不会像预期的那样返回test,而是返回带有name=“id”的输入。有人知道这是怎么回事吗 这里有一把小提琴再现了这个问题->这是因为这里的这一行: <form id="te
<form id="test">
<input name="id" type="hidden" value/>
</form>
但是运行document.getElementById(“test”).id
不会像预期的那样返回test
,而是返回带有name=“id”
的输入。有人知道这是怎么回事吗
这里有一把小提琴再现了这个问题->这是因为这里的这一行:
<form id="test">
<input name="id" type="hidden"/> <!-- HERE -->
</form>
这将是
元素。将它更改为除id
之外的另一个名称,它将起作用。这里发生的是HTML刚刚正式化时的旧工件。它应该只放在一个命名的集合下,但浏览器决定在不同的随机位置创建快捷方式访问。无论哪种方式,你都可以在这里阅读更多内容:一旦我在我的桌面上,我将引用相关部分 JS似乎正在考虑将id
作为您正在考虑的更大表单的子对象。您正在寻找函数,getAttribute
,它在JSFIDLE中工作:
alert(document.getElementById("test").getAttribute("id"));
alert(document.getElementById("test2").getAttribute("id"));
希望有帮助 表单控件名称用于创建引用该控件的表单的命名属性。因此,你有:
<form id="test">
<input name="id">
</form>
然后为表单的id属性指定一个对名为id的输入元素的引用。表单控件的名称不应与标准表单属性相同,例如,在以下情况下:
<form>
<input name="submit">
</form>
无法调用表单的submit方法,因为form.submit引用的是输入,而不是方法
如其他答案中所述,您可以将名称更改为与标准表单属性不冲突的名称,或者使用getAttribute。首选第一种解决方案,因为它还可能为表单控件提供更合适的名称,并避免使用getAttribute。为什么需要查找表单的id?您已经有了它…嗯,在您的JSFIDLE中,我注意到第二个测试输入的名称是'id1';我敢打赌,它将
.id
解释为该名称的子元素,而不是其本身的实际属性。我要进去看看jsfiddle@Deep我知道我有id,这是一个概念证明…不是关于HTML,而是关于DOM。谢谢,我不知道你可以覆盖这样的属性,非常粗糙;p我可能会使用getAttribute或添加自定义属性(例如“column=”),因为我喜欢将表单输入直接映射到数据库列的想法。
<form>
<input name="submit">
</form>