jquery中判断数组是否为空

<form action="">
<input type="file" name="fname[]" />
<input type="file" name="fname[]" />
<input type="file" name="fname[]" />
<input type="file" name="fname[]" />
</form>这是一个批量上传图片,jquery中如何判断上传文件是否为空,也就是一个都没上传

可以通过判断数组的长度length来判断数组是否为空百,空数组的length值为空。数组的
length
属性总是比数组中定义的最后一个元素的下标大
1。对于那些具有连续元素,而且以元素
0
开始的常规数组而言,属性
length
声明了数组中的元素的个数。数组的
length
属性在用构造函数
Array()
创建数组时被初始度化。给数组添加新元素时,如果必要,将更新
length
的值。
设置
length
属性可改变数组的大小。如果设置的值比其当前值小,数组版将被截断,其尾部的元素将丢失。如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为权
undefined。
工具原料:编辑器、浏览器
1、如果一个数组为空则其属性length为0否则为数组的实际长度,代码如下:
var a=[]
var b=[1,2,3]
a.length
b.length2、早console的控制台的输出结果如下:
3、a按照这个原理直接判断数组的长度即可判断数组是否为空:
if(rr.length == 0){
console.log("数组为空");
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-09
var arr = [];
if(arr && arr.length > 0){
alert("arr is null");
}追问

能不能详细点 照着我那个表单来

第2个回答  2014-07-09
var fileobj = $("input[name='fname[]']");
if (fileobj.length == 0) {
alert("请选择上传文件");

} else {
//执行上传代码

}追问

不对
var fileobj = $("input[name='fname[]']").val();
if (fileobj.length == 0) {
alert("请选择上传文件");

} else {
//执行上传代码

}这样可以阻止表单提交,但是文件表单点击不了了,加载不了文件

追答

额。。看错了,以为是checkbox呢。。

<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script src="jquery-2.0.3.min.js"></script>
<script>
function check() {
var flag = false;
$("input[name='fname[]']").each(function() {
if ($(this).val() != "") {
flag = true;
return false;
}
});
return flag;
}

function upload() {
if(check()) {
//执行上传代码
alert("已经选择文件了");
} else {
alert("请选择想要上传的文件");
}
}

</script>

<form action="">
<input type="file" name="fname[]" />上传1<br/>
<input type="file" name="fname[]" />上传2<br/>
<input type="file" name="fname[]" />上传3<br/>
<input type="file" name="fname[]" />上传4<br/>
<input type="button"  value="确定" onclick="upload();" />
</form>
这回应该对了

本回答被提问者采纳
第3个回答  2015-10-10
使用jquery获取name属性的标签数组,然后使用each方法遍历数组,判断标签数组中的值是否存在,若存在且不为空,则返回true,否则返回false;
示例代码:
function check() {
var flag = false;
$("input[name='fname[]']").each(function() {
if ($(this).val() != "") {
flag = true;//判断标签数组中的值是否存在,若存在且不为空,则返回true
return false; //此返回false是结束each遍历
}
});
return flag;//返回最后的结果
}本回答被网友采纳