在将其上传到服务器之前,我想在前端验证文件名和文件大小。
我以为iron-input
会是一个好的解决方案,但是我却无法使其正常工作。我遵循了官方Web组件网站上的提示:
https://www.webcomponents.org/element/PolymerElements/iron-input
对我来说最有趣的部分是演示部分的最后一个示例:
<cats-only></cats-only>
<iron-input auto-validate validator="cats-only">
<input placeholder="only 'cat' is valid">
</iron-input>
我试图做类似的事情:
document-upload.html
。
<document-validator></document-validator>
<iron-input
id="ironFile"
bind-value="[[document]]"
validator="document-validator"
auto-validate>
<input type="file"
id="inputUploadFile"
hidden
name="files[]"
accept=".pdf"
value="{{document::input}}"
on-change="_uploadSelectedFile">
</iron-input>
和document-validator.html
:
class DocumentValidator extends Polymer.mixinBehaviors([Polymer.IronValidatorBehavior],
Polymer.Element) {
static get is() {
return 'document-validator';
}
validate(value) {
console.log("VALIDATOR")
}
但是不幸的是,没有调用validate()
函数。而且,我收到一个错误消息:
此输入元素接受文件名,该文件名只能是 以编程方式设置为空字符串。
当我摆脱iron-input
的{{1}}和value
属性时,上传功能可以正常工作。正确的方法是什么?验证应如何处理?