3

我遇到了这个问题,但仍然对此一无所知。

这是我在jsfiddle上的代码。

如您所见,单击“上传”将触发文件输入的 HTML 验证,并显示错误消息。

但是,如果我选择一个文件,然后单击“重置”按钮来重置表单。之后,我点击“上传”(提交表单),验证就消失了。

我也尝试使用 javascript 方法reset(),但问题仍然存在。

请注意,我使用的是 Google Chrome 浏览器。

有人对这个问题有一些想法吗?

还是我刚刚遇到了 HTML 验证的错误?

4

2 回答 2

2

看起来这是 Chrome 的一个错误。
您可以通过在输入字段中添加以下 CSS 来查看差异。

input:invalid {
    color: blue;
} 

当您在 FF 上重置时,输入字段将变为无效,但在 Chrome 上则不会。在 Chrome 上,如果您选择一个文件,然后再次调出选择屏幕然后取消它,该字段将变为无效。这似乎是重置输入字段的唯一方法。

看起来你将不得不添加一些代码。

于 2014-01-22T15:04:30.687 回答
0

只有我遇到问题的浏览器是在 Chrome 上。下面将为我解决这个问题(不知道为什么会这样)

$("button[type='reset']").on('click', function() {
    $("#file").replaceWith('<input id="file" type="file" required />');
    return true;
});

JSFiddle

于 2014-01-22T14:29:29.437 回答