2013-10-30 94 views
0

我有提交按鈕使用JavaScript的窗體。代碼看起來如下:Internet Explorer - Javascript提交錯誤

<form action="settings.php" method="post" id="myform" class="forms"> 
...some form fields here 
<button type="submit" name="submit_ok" value="Save" onClick="document.myform.submit();">Save</button> 

然而,IE 10(Win7的X64)試圖提交表單時顯示此錯誤:

「無法獲取屬性未定義或空引用提交」

所有其他瀏覽器不顯示任何錯誤。如果IE瀏覽器詢問是否要繼續在此頁面上運行腳本時單擊「是」,則一切正常,但我需要嚴重刪除此錯誤。

+0

這是一個提交按鈕,爲什麼在觸發按鈕時默認情況下會提交?刪除onclick,表單會做到這一點。 – epascarello

+0

此外,很少有需要給一個提交按鈕的名稱 - 這是很誘人的稱之爲「提交」... :-( – RobG

+0

epascarello,就像我說的,有更多的onClick事件與其他按鈕(做不同的事情,而不是提交表單),所以我問爲了將此解決方案應用於其他按鈕 –

回答

3
  1. 所有的表單控件(例如,按鈕,輸入等)有一個屬性form引用父<form>元件。因此,您可以使用

    this.form.submit(); 
    
  2. 爲什麼這麼麻煩呢?您的提交按鈕的默認操作將提交表單。

  3. IE遍歷document對象時可能會按名稱查找元素。您的表單沒有name屬性。

+0

謝謝,這很奏效。是的,我知道默認的動作是提交,但有更多的onClick事件與其他按鈕(做不同而不是提交表單),所以我可以將此解決方案應用於其他按鈕。 –