我有一个标记为的表格
<form class="form1" method="post" action="form1.php" style="width:405px">
Run Code Online (Sandbox Code Playgroud)
通常,我可以通过参考.action表单对象来访问javascript中表单的操作
document.forms[0].action
Run Code Online (Sandbox Code Playgroud)
这将返回值
form1.php
Run Code Online (Sandbox Code Playgroud)
但是,如果作为表单的一个组件,我有一个名为"action"的项,则此"action"将成为表单操作的内容.也就是说,如果表单标记包含,例如,
<input name="action" type="hidden" value="check" />
Run Code Online (Sandbox Code Playgroud)
然后
document.forms[0].action
Run Code Online (Sandbox Code Playgroud)
返回值
<input name="action" type="hidden" value="check" />
Run Code Online (Sandbox Code Playgroud)
现在,我确实研究了如何解决这个问题:使用
document.forms[0].getAttribute("action")
Run Code Online (Sandbox Code Playgroud)
然而,这是一个讨厌的问题让我困惑了太久.这是一个错误吗?一个已知的DOM管理问题?或者我应该养成使用.getAttribute()的习惯?
我不会称之为错误。之所以会出现这种效果,是因为可以通过使用来读取属性,element.attributename并且可以以相同的方式访问表单内的命名输入formelement.inputname。如果存在同名的属性和输入,则无法保证将使用哪一个。它可能在不同的浏览器中表现不同。
getAttribute如果我正在阅读包含在标记中或setAttribute在 JavaScript 中使用添加的已知属性,我个人会使用。对于动态值,例如checked复选框的属性,我不使用getAttribute. 但这更多是个人喜好的问题,我想。
| 归档时间: |
|
| 查看次数: |
511 次 |
| 最近记录: |