gpt4 book ai didi

javascript - 名为 'action' 的表单中的输入会覆盖表单的操作属性。这是一个错误吗?

转载 作者:数据小太阳 更新时间:2023-10-29 04:17:13 24 4
gpt4 key购买 nike

我有一个表格标记为

<form class="form1" method="post" action="form1.php" style="width:405px">

通常,我可以通过引用表单对象的.action来访问javascript中表单的 Action ,例如

document.forms[0].action

返回值

form1.php

但是,如果作为表单的一个组成部分,我有一个名为“action”的项目,那么这个“action”就会成为表单 Action 的内容。也就是说,如果表单标记包含,例如,

<input name="action" type="hidden" value="check" />

然后

document.forms[0].action

返回值

<input name="action" type="hidden" value="check" />

现在,我确实想出如何解决这个问题:通过使用

document.forms[0].getAttribute("action")

然而,这是一个让我困惑了太久的令人讨厌的陷阱。这是一个错误吗? DOM 管理的一个已知陷阱?还是我应该养成使用 .getAttribute() 的习惯?

最佳答案

我不会将此称为错误。出现这种效果是因为可以使用 element.attributename 读取属性,并且可以用相同的方式访问表单内的命名输入,formelement.inputname。如果存在同名的属性和输入,则无法保证将使用哪一个。它在不同浏览器中的行为可能不同。

如果我正在读取包含在标记中或在 JavaScript 中使用 setAttribute 添加的已知属性,我个人会使用 getAttribute。对于动态值,例如复选框的 checked 属性,我不使用 getAttribute。但我想这更多是个人喜好问题。

关于javascript - 名为 'action' 的表单中的输入会覆盖表单的操作属性。这是一个错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18100630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com