2013-04-30 65 views
7

早些時候,我創建一個表單和盲目命名的我輸入「姓名」一,類似於下面的僞代碼:不應使用的輸入名稱?

<input id="name" type="text" name="name" /> 

我纔想起,在過去,我有問題,與輸入名字「行動」。如果我沒有記錯,那麼在使用JavaScript進行增強時就會出現這些問題(表單操作與名稱爲「action」的輸入之間存在混淆)。

所以我的問題是:

  • 是可以安全使用類似於上面的代碼片段的東西嗎?
  • 是否有一些通常不應該用作輸入名稱的字符串的規範列表?
+0

如果你正在使用jquery來定位它們,它可能會與任何有效的名稱一致 – Huangism 2013-04-30 20:12:18

+2

我會說避免窗體的常見屬性以及附加到窗體的方法名稱。常見問題是[提交不是函數](http://stackoverflow.com/a/834197/14104) – epascarello 2013-04-30 20:17:11

回答

3

有大多的問題,如果你使用像myform.actionaction快捷鍵是form元素的屬性(如爲idparentNode,還有一些其他屬性,你可以看到使用console.dir(myform))。

您應該始終使用快速和可靠的方式:

var inputElement = document.getElementById('action'); 

,或者使用jQuery:

var $input = $('#action'); 

由於注意到了epascarello,你也有問題,如果你打電話或使用您通過定義具有該名稱的元素而被覆蓋的屬性,例如submit。但是作爲是在你的代碼中調用它的人,它應該是顯而易見的,如果它發生。

+2

getElementById不會爲您節省100%的時間。命名元素提交併通過JavaScript調用提交。該名稱將覆蓋該方法。 – epascarello 2013-04-30 20:14:24

+0

+1我爲這種情況編輯過。 – 2013-04-30 20:17:24