老项目,处理问题,比如这个表格,本身写的不是按数组放最后的 ,是这样的:
info[1][name],
info[2][name]
如果是这样info[name][] 应该就不会出问题。
不改格式的话需要加验证判断:
var name = [];
var rep = false;
$.each($('#myform').serializeArray(),function (k,v) {
if (name.includes(v.name)) { //判断js数组中是否存在某个值
rep = true;
}
name.push(v.name);
});
if (true === rep) {
$.dialog.tips('填写内容的行重复,需刷新重试',2,'error.gif');return false;
}
Js判断数组中存在某值:
1.比较传统的做法:
概述: indexOf()方法返回给定元素能找在数组中找到的第一个索引值,否则返回-1。
var a=["1", "3", "2", "3", "0"]; console.log(a.indexOf ('3'));//1 console.log(a.indexOf (5,'0'));//-1 console.log(a.indexOf ('0'));//4 console.log(a.indexOf ('0',-5));//4 console.log(a.indexOf ('3',-1));//-1 console.log(a.indexOf ('3',-3));//3 console.log(a.indexOf ('1',5));//-1 console.log(a.indexOf (3));//-1 console.log(a);//["1", "3", "2", "3", "0"]
2.今天发现有个函数比较好用
let arr = [1,2,3]; arr.includes(1) // true arr.includes(5) //false