在一组动态生成的文件上传控件中:

<input type="file" name="archivos[]">
<input type="file" name="archivos[]">
<input type="file" name="archivos[]">
// ...


...我可以轻松地算出非空的:

// Works fine
var nonEmptyCount = $("input[type='file'][name='archivos[]'][value!='']").length;


但是,当我尝试计算空(我实际需要的)时,选择器永远不会匹配任何内容:

// Always zero
var emptyCount = $("input[type='file'][name='archivos[]'][value='']").length;


我不敢相信我需要这个繁琐的代码:

// Works but ugly
var emptyCount = $("input[type='file'][name='archivos[]']").length -
    $("input[type='file'][name='archivos[]'][value!='']").length;


我缺少什么?

最佳答案

一种解决方案是检查迭代器中value是否为空,例如:



$("#findEmpty").on("click", function() {
  var count = 0;
  $(":file[name='archivos[]']").each(function() {
    if (this.value == "") {
      count++;
    }
  });
  alert(count);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" name="archivos[]" />
<input type="file" name="archivos[]" />
<input type="file" name="archivos[]" />
<input type="file" name="archivos[]" />
<input type="file" name="archivos[]" />
<input type="file" name="archivos[]" />
<input type='button' value='Check Empty' id='findEmpty' />

关于javascript - 计算空文件上传控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27312862/

10-09 23:28