我遇到过这个问题但仍然没有任何线索/想法。
这是我在jsfiddle上的代码。
如您所见,单击“上传”将触发文件输入的HTML验证,并显示错误消息。
但是,如果我选择一个文件,然后单击“重置”按钮重置表单。之后,我点击“上传”(提交表格),验证结束。
我也尝试使用javascript方法reset()
但问题仍然存在。
请注意,我使用的是谷歌Chrome浏览器。
有没有人对这个问题有一些想法?
或者我刚刚遇到HTML验证错误?
答案 0 :(得分:2)
看起来这是Chrome的一个错误 您可以通过在输入字段上添加以下CSS来查看差异。
input:invalid {
color: blue;
}
当您在FF上重置时,输入字段将变为无效,但在Chrome上,它不会。在Chrome上,如果您选择一个文件,然后再次调出选择屏幕然后取消它,该字段将变为无效。这似乎是重置输入字段的唯一方法。
看起来你必须添加一些代码。
答案 1 :(得分:0)
只有我遇到此问题的浏览器才能在Chrome上使用。以下将解决我的问题(不知道为什么会有效)
$("button[type='reset']").on('click', function() {
$("#file").replaceWith('<input id="file" type="file" required />');
return true;
});
<强> JSFiddle 强>