2012-01-23 25 views
0

IE8渲染文本框旁邊的瀏覽按鈕,文件輸入:停止<enter>從IE8的文件輸入提交表格

<input type="file" /> 

據我所知,有關於您可以用文件做了一些安全方面的限制使用JavaScript輸入,但有沒有一種很好的方式來阻止父窗體提交當用戶關注此文本框並按下回車?

回答

1

最簡單的方法是簡單地在表單元素上的onSubmit事件處理函數返回false。據推測,你在窗體的其他地方有一個按鈕,你想要實際觸發表單提交。在該按鈕上,您可以添加調用form.submit()的onclick處理函數。當您以編程方式提交表單時,不會觸發onSubmit處理程序。

可能看起來是這樣的:

<form id="myform" method="post" action="http://yourserver/page" onSubmit="return false;"> 
    <input id="myfile" type="file" name="file"/> 
    <input type="button" value="upload" onClick="submitForm();" /> 
</form> 

<script type="text/javascript"> 

function submitForm() 
{ 
    // if no file, don't submit 
    var file = document.getElementById("myfile"); 
    if (file.value.length == 0) return; 

    var form = document.getElementById("myform"); 
    form.submit(); 
} 
+0

不利的一面是,當JavaScript被禁用時,表單根本不能被提交,除非不自然(通過在文件名框中按Enter鍵,瀏覽器將此視爲提交請求)。 –