早些时候,我正在创建一个表单,并在不知不觉中将我的输入之一命名为“名称”,类似于以下伪代码:
<input id="name" type="text" name="name" />
然后我想起了在过去,我遇到了名称为“action”的输入的问题。如果我没记错的话,这些问题是在使用 JavaScript 进行增强期间出现的(表单的操作与名称为“操作”的输入之间存在混淆)。
所以我的问题是:
- 使用类似于上面代码片段的东西是否安全?
- 是否有一些通常不应用作输入名称的规范字符串列表?
早些时候,我正在创建一个表单,并在不知不觉中将我的输入之一命名为“名称”,类似于以下伪代码:
<input id="name" type="text" name="name" />
然后我想起了在过去,我遇到了名称为“action”的输入的问题。如果我没记错的话,这些问题是在使用 JavaScript 进行增强期间出现的(表单的操作与名称为“操作”的输入之间存在混淆)。
所以我的问题是:
如果您使用诸如myform.action
as元素action
的属性(例如 are 、以及您可以使用 看到的其他一些属性)之类的快捷方式,则通常会出现问题。form
id
parentNode
console.dir(myform)
您应该始终使用快速可靠的方式:
var inputElement = document.getElementById('action');
或者,使用 jQuery :
var $input = $('#action');
正如 epascarello 所注意到的,如果您调用或使用通过定义具有该名称的元素来覆盖的属性,例如submit
. 但是由于您是在代码中调用它的人,因此如果发生这种情况应该很明显。