我有以下代碼提交表單並調用PHP腳本。提交按鈕需要點擊兩次IE瀏覽器
<script>
function handleBrowse()
{
$('#uploadedfile').click();
}
function displayFilePath(obj)
{
document.getElementById('dummyFilePath').innerHTML = obj.value;
}
</script>
<div id="dummyFilePath" class="dummyFilePath"></div>
<input type="button" value="Browse" onclick="handleBrowse();"/>
<form enctype="multipart/form-data" action="../php/uploader.php" method="POST" target="myiframe">
<input type="file" id="uploadedfile" name="uploadedfile" onchange="displayFilePath(this)" style="display:none"/>
<input type="submit" value="Upload File" />
</form>
<iframe name="myiframe" id="myiframe" src="" width=1 height=1 style="visibility:hidden;position:absolute;bottom:2px;"></iframe>
在Firefox中我將只需要點擊一次提交。但在IE中,我需要點擊兩次!
你能解釋一下爲什麼嗎?
請在IE上運行this jsFiddle來查看問題。 您可以清楚地看到,一旦瀏覽了要上傳的文件,除非按了上傳文件按鈕兩次,表單的操作不起作用。
PS:IE中的雙擊問題可以按照下面的答案中的建議解決,但這會導致上傳的文件永遠不會到達目的地(uploader.php);只有他的名字將
不確定它是你問題的根源,但你需要關閉元素標記:' – sdespont
,因爲你使用JQuery,'document.getElementById('dummyFilePath')。innerHTML = obj.value;'等於'$('dummyFilePath')。html(obj.value);'。還要避免內聯JS聲明像onClick這樣的事件。 – sdespont
嘗試使用JQuery http://api.jquery.com/submit/在表單上添加提交事件,然後在回調中添加一個警告框並檢查警報是否首次顯示IE。同時檢查控制檯是否有錯誤(F12) – sdespont