2

我有一个简单的表格。它包含一个“文件”类型的输入和一个提交按钮。它正在进行 508 合规性测试,他们有问题。

如果您选择 FILE 输入并按回车键,IE 将提交表单。据我了解,这是正确的行为。我没有做任何 Javascript 或任何有意改变按键行为的事情。

我们的 508 位测试人员不同意,他们认为在 FILE 输入中按 Enter 应该会打开浏览对话框。我还没有找到任何结论性的东西,但我希望有人可以为我澄清。表格样本如下。

<form id="upload_Form" METHOD="POST" ENCTYPE="multipart/form-data" action="" NAME="uploadForm">
<INPUT TYPE="FILE" NAME="filenames" id="filenames" title="Select File for Upload">
<input type="submit" value="Upload"/>
</form>
4

2 回答 2

2

其实,这是共识的问题。我个人认为,就可访问性而言,使用回车键而不是空格来触发浏览对话框是正确的行为——比方说,对于普通用户来说更直观。这就是为什么 WebKit 这样做的原因,而不是在上传输入集中时提交表单。

一个简单的 jQuery 解决方法作为 IE 的修复:

$(document).keypress(
    function(event){
     if (event.which == '13') {
        event.preventDefault();
         $('#upload-form').click();
      }
});

演示小提琴

于 2013-09-19T13:47:05.137 回答
0

<input type="file"/>元素中,在现代浏览器中,焦点转到调用文件选择对话框的按钮。在该实例中按回车键应该调用对话框而不是提交表单。当然,IE 以自己的方式做事。我倾向于使 IE 符合标准,而不是相反。

但更重要的是,如果该字段尚未填写,您为什么要故意提交表单?充其量是一个验证错误。

于 2013-09-19T13:51:17.710 回答