我想通過調試,我不應該命名任何表單元素name="submit"
,但即使搜索我沒有找到任何好的解釋,爲什麼?爲什麼表單元素不應該被命名爲submit?
請參見下面簡單的代碼示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="javascript:alert('submitted');" method="post" id="test-form">
<label>Name</label>
<input type="text" name="name-field" value="" />
<input type="submit" name="submit" value="Submit Button" /> <!-- name should not be "submit" -->
<p><a href="javascript: document.getElementById('test-form').submit();">Submit Link</a></p>
</form>
</body>
</html>
- 如果按Enter鍵,而任何形式的元素或點擊的 提交按鈕,它會工作。
如果在點擊提交鏈接,就會有錯誤
未處理的錯誤:「提交「的document.getElementById(」測試形式)」不是一個函數
如果你只是重命名您提交按鈕比name="submit"
其他任何東西(即使你只是利用它的某些部分),或者只是刪除name="submit"
屬性,然後提交和提交鏈接將工作。
我在最新版本的Internet Explorer,Firefox,Opera,Chrome和Safari中試過這個。所有這些人都有一致的行爲。
正如您在我的代碼示例中所看到的,沒有涉及jQuery或任何其他JavaScript庫。
我將不勝感激解釋。謝謝
現在有道理。所以最好的做法是避免任何表單元素名稱中的所有表單方法。謝謝 – cusman
「最佳實踐」有時很難定義,但可以肯定地說,如果你遵循這個經驗法則,你不應該遇到麻煩。 –