我在“文件”类型的输入上附加了一个“更改”事件侦听器的验证功能。
自然,在检测到更改之前它不会触发,这意味着在将文件添加到其中之后。所以,我可以添加文件,验证器失败,我可以阻止用户点击“提交”。从功能上讲,它“有效”。
但从外观上看,在文件输入旁边,它显示“选择了 3 个文件”或其他任何内容。如果您检查该节点,您将看到它有一个填充的 files.fileList,正如预期的那样。
这是代码,因为总是有人问......但这与实际问题无关:
domNode.defaultUI.on("change", '#files-upload', function(evt) {
var fileList = evt.target.files;
if (fcup.util.checkFiles(fileList) && fcup.util.validateExtraFields()) {
fcup.util.traverseFiles(fileList, "change");
}
evt.preventDefault();
evt.stopImmediatePropagation();
});
问题:
- 是否有另一个我可以使用的事件监听器是“预更改”?
- 我知道 fileLists 是只读的,但是还有其他方法可以...删除... fileList?您不能将其设为空或将其设置为空,因为这仍然是对对象的写入。
我可能会删除并重新创建整个输入节点......这合理吗?