1

我在“文件”类型的输入上附加了一个“更改”事件侦听器的验证功能。

自然,在检测到更改之前它不会触发,这意味着在将文件添加到其中之后。所以,我可以添加文件,验证器失败,我可以阻止用户点击“提交”。从功能上讲,它“有效”。

但从外观上看,在文件输入旁边,它显示“选择了 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();
});

问题:

  1. 是否有另一个我可以使用的事件监听器是“预更改”?
  2. 我知道 fileLists 是只读的,但是还有其他方法可以...删除... fileList?您不能将其设为空或将其设置为空,因为这仍然是对对象的写入。

我可能会删除并重新创建整个输入节点......这合理吗?

4

0 回答 0