早些時候,我創建一個表單和盲目命名的我輸入「姓名」一,類似於下面的僞代碼:不應使用的輸入名稱?
<input id="name" type="text" name="name" />
我纔想起,在過去,我有問題,與輸入名字「行動」。如果我沒有記錯,那麼在使用JavaScript進行增強時就會出現這些問題(表單操作與名稱爲「action」的輸入之間存在混淆)。
所以我的問題是:
- 是可以安全使用類似於上面的代碼片段的東西嗎?
- 是否有一些通常不應該用作輸入名稱的字符串的規範列表?
早些時候,我創建一個表單和盲目命名的我輸入「姓名」一,類似於下面的僞代碼:不應使用的輸入名稱?
<input id="name" type="text" name="name" />
我纔想起,在過去,我有問題,與輸入名字「行動」。如果我沒有記錯,那麼在使用JavaScript進行增強時就會出現這些問題(表單操作與名稱爲「action」的輸入之間存在混淆)。
所以我的問題是:
有大多的問題,如果你使用像myform.action
爲action
快捷鍵是form
元素的屬性(如爲id
,parentNode
,還有一些其他屬性,你可以看到使用console.dir(myform)
)。
您應該始終使用快速和可靠的方式:
var inputElement = document.getElementById('action');
,或者使用jQuery:
var $input = $('#action');
由於注意到了epascarello,你也有問題,如果你打電話或使用您通過定義具有該名稱的元素而被覆蓋的屬性,例如submit
。但是作爲你是在你的代碼中調用它的人,它應該是顯而易見的,如果它發生。
getElementById不會爲您節省100%的時間。命名元素提交併通過JavaScript調用提交。該名稱將覆蓋該方法。 – epascarello 2013-04-30 20:14:24
+1我爲這種情況編輯過。 – 2013-04-30 20:17:24
如果你正在使用jquery來定位它們,它可能會與任何有效的名稱一致 – Huangism 2013-04-30 20:12:18
我會說避免窗體的常見屬性以及附加到窗體的方法名稱。常見問題是[提交不是函數](http://stackoverflow.com/a/834197/14104) – epascarello 2013-04-30 20:17:11