计算空文件上传控件
Count empty file upload controls
在一组动态生成的文件上传控件中:
<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;
我错过了哪一点?
一种解决方案是检查迭代器中的值是否为空,例如:
$("#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' />
您可以
通过以下方式过滤它们:
var emptyOne = $("input[type='file'][name='archivos[]']").filter(function () {
return $(this).val() == "";
});
$(function () {
var emptyOne = $("input[type='file'][name='archivos[]']").filter(function () {
return $(this).val() == "";
});
alert(emptyOne.length);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<input type="file" name="archivos[]">
<input type="file" name="archivos[]">
<input type="file" name="archivos[]">
示例小提琴
我没有
解释(我会立即接受任何提供解释的答案),但根本原因似乎是使用通用属性等于选择器来查找控件:
$("input[type='file']")
如果我使用 jQuery 扩展快捷方式,其他一切都按预期工作:
$("input:file")
根据文档:
- 两个选择器的行为应该相同
-
[type='file']
应该表现得更好
。所以某处一定有错误。
相关文章:
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 从IE中的不同元素调用时,文件输入控件未正确启动
- 如何使用ngModel将自定义控件的提供程序扩展器分离到Angular 2中的单独文件中
- 将具有控件布局的Xml文件渲染到HTML5页面中
- 将html控件id从aspx文件传递给javascript
- 清除/重置网格视图中的文件上载控件
- 在 Web 浏览器控件中加载本地文件
- 使用 AJAX 提交表单并提交阻止和发送文件控件 C# 的选定文件
- 使用 JavaScript 导出 XLS 文件,而不带 Active X 控件
- 从文件上载控件中删除特定文件
- 如何访问位于同一文件中 js 中的数据列表中的控件 ID
- 使用 JSON 和 JQUERY 解析远程文件并创建动态 SELECT 控件
- 从客户端上传文件,不使用文件上传控件
- 所有文件都不是使用 jquery 从文件上传控件获取的
- 如何阻止用户在 HTML 文件输入控件中手动编辑文件路径
- 如何将JS文件与模块、控件链接;dotnetnuke中的模板
- 在.js文件中获取.aspx控件ID
- 为什么控件没有从PHP文件返回到AJAX成功函数
- 在外部javascript文件中获取asp控件ID的最佳方式是什么
- 外部JS文件找不到控件,但可以使用quickwatch