2015-05-03 41 views
3

我試圖提交HTML表單,爲什麼HTML表單不能通過名稱爲「submit」的按鈕來提交?

<form action="go.php"> 
    <input id="I" type="button" name="submit" value="Go" onclick="this.form.submit()"/> 
</form> 

上面的代碼失敗了,但如果我改變按鈕的名稱到別的東西,例如,

<form action="go.php"> 
    <input id="I" type="button" name="bt" value="Go" onclick="this.form.submit()"/> 
</form> 

它的工作原理。爲什麼?這兩者有什麼區別?

+0

想要提交時,爲什麼要使用type =「button」。使用type =「submit」 –

回答

4

表單中具有「名稱」屬性的交互元素在DOM圖中與表單DOM節點關聯爲節點的屬性。屬性名稱取自交互式元素上的「name」屬性。

因此,如果您通過開發者控制檯看形成節點,你會看到相應的輸入元素,按鈕,文本域,選擇等等。因此,考慮到性能:

<form id=myform> 
    <input name=sometext value="hello world"> 
</form> 

那麼這將通過JavaScript工作:

var f = document.getElementById("myform"); 
alert(f.sometext.value); // "hello world" 

這種怪異的行爲會導致問題,當您使用與表單DOM節點上的其他有用的屬性衝突,名稱類似「提交」。通過名稱「submit」引用按鈕已經覆蓋了當表單節點「誕生」時引用的「提交」功能。

相關問題