需要在IE上单击两次“提交”按钮

时间:2013-07-07 20:40:34

标签: jquery html

我有以下代码提交表单并调用PHP脚本。

<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);只有它的名字

1 个答案:

答案 0 :(得分:2)

像这样更新你的功能

function handleBrowse()
{   
    $('#uploadedfile').click();
    $('#uploadedfile').detach();
}

希望这会对你有所帮助。