在IE8 </enter>中输入文件输入时停止<enter>

时间:2012-01-23 02:10:45

标签: javascript internet-explorer-8

IE8在浏览按钮旁边呈现文本框以进行文件输入:

<input type="file" />

据我所知,对于使用JavaScript可以对文件输入执行的操作存在许多安全限制,但是当用户关注此文本框并按Enter键时,是否有一种很好的方法可以阻止父表单提交?

2 个答案:

答案 0 :(得分:1)

我会看看使用jQuery的keypress并捕获它。我自己没有这样做测试,但看看这里:

http://forum.jquery.com/topic/how-to-catch-keypress-on-body

答案 1 :(得分: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();
}