2013-11-02 54 views
1

下面是頁面的代碼,但是,你會在頭部看到我已經放入了JavaScript,它應該檢查是否有通過位於代碼底部的文件上傳輸入字段選擇的文件。在檢測到文件選擇後,它應該自動提交表單,但出於某種原因它不會自動提交。爲什麼這不起作用?提前致謝!爲什麼這個表單自動提交文件選擇?

JavaScript的:(在head

<head> 
    <script type="text/javascript"> 
     document.getElementById("photofield").onchange = function() { 
      document.getElementById("form").submit(); 
     } 
    </script> 
</head> 

HTML(表格):

<form enctype="multipart/form-data" action="photoupload.php" method="post" id="form"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="524288"> 
    <p><input id="photofield" type="file" name="upload" /></p> 
    </fieldset> 
    <div align="center"><input type="submit" name="submit" value="Submit" /></div> 
    <input type="hidden" name="submitted" value="TRUE" /> 
</form> 
+0

嘗試'document.getElementById(「form」)。trigger('submit');'而不是'document.getElementById(「form」)。submit();' –

+0

它對你有用嗎? –

回答

0

這是因爲你有名字submit輸入元素(submit button),這是問題,如果您將提交按鈕的名稱更改爲submit以外的其他名稱,則可以使用,例如,更改你e提交按鈕的代碼btn_submit,而不是submit

<input type="submit" name="btn_submit" value="Submit" /> 

現在試試這個

window.onload = function(){ 
    document.getElementById("photofield").onchange = function() { 
     document.getElementById("form").submit(); 
    }; 
}; 

與名稱submit,它引發以下錯誤

Uncaught TypeError: Property 'submit' of object #<HTMLFormElement> is not a function 

它設置屬性submitHTMLFormElement,所以方法submit在012無法執行表單元素的,請檢查this working example(僅在Chrome中進行測試)。

此外,對窗口onload註冊事件是很重要的(也閱讀addEventListener和閱讀this太)事件,因爲表單時,你的代碼在head區段行駛,它會拋出以下錯誤

Cannot set property 'onchange' of null 
不可用
相關問題