繁体   English   中英

停止 <enter> 从IE8中的文件输入提交表单

[英]Stop <enter> from submitting form on file input in IE8

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

<input type="file" />

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

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

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

最简单的方法是在表单元素的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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM