进一步优化 form name 数组支持

This commit is contained in:
sentsin
2017-12-08 12:13:05 +08:00
parent 4b63b64865
commit 31b8a0aa83
30 changed files with 55 additions and 35 deletions

View File

@@ -405,8 +405,8 @@ layui.define('layer', function(exports){
,verifyElem = elem.find('*[lay-verify]') //获取需要校验的元素
,formElem = button.parents('form')[0] //获取当前所在的form元素如果存在的话
,fieldElem = elem.find('input,select,textarea') //获取所有表单域
,filter = button.attr('lay-filter') //获取过滤器
,nameIndex = 0; //数组 name 索引
,filter = button.attr('lay-filter'); //获取过滤器
//开始校验
layui.each(verifyElem, function(_, item){
@@ -453,18 +453,21 @@ layui.define('layer', function(exports){
});
if(stop) return false;
var nameIndex = {}; //数组 name 索引
layui.each(fieldElem, function(_, item){
item.name = (item.name || '').replace(/^\s*|\s*&/, '');
if(!item.name) return;
if(/^checkbox|radio$/.test(item.type) && !item.checked) return;
//用于支持数组 name
if(/^.*\[\]$/.test(item.name)){
item.name = item.name.replace(/^(.*)\[\]$/, '$1['+ (nameIndex++) +']');
var key = item.name.match(/^(.*)\[\]$/g)[0];
nameIndex[key] = nameIndex[key] | 0;
item.name = item.name.replace(/^(.*)\[\]$/, '$1['+ (nameIndex[key]++) +']');
}
if(/^checkbox|radio$/.test(item.type) && !item.checked) return;
field[item.name] = item.value;
});

View File

@@ -19,7 +19,7 @@
}
,Layui = function(){
this.v = '2.2.4'; //版本号
this.v = '2.2.45'; //版本号
}
//获取layui所在目录