@@ -264,9 +263,7 @@
-
-
-
+
diff --git a/src/modules/form.js b/src/modules/form.js
index 712dfeb4..8b1170bf 100644
--- a/src/modules/form.js
+++ b/src/modules/form.js
@@ -671,9 +671,9 @@ layui.define('layer', function(exports){
// elem 即要验证的区域表单选择器 - return true or false
Form.prototype.validate = function(elem){
var that = this;
- var stop = null; //验证不通过状态
- var verify = form.config.verify; //验证规则
- var DANGER = 'layui-form-danger'; //警示样式
+ var stop = null; // 验证不通过状态
+ var verify = form.config.verify; // 验证规则
+ var DANGER = 'layui-form-danger'; // 警示样式
elem = $(elem);
@@ -688,38 +688,42 @@ layui.define('layer', function(exports){
}
}
- //开始校验
+ // 开始校验
layui.each(elem, function(_, item){
var othis = $(this);
var verifyStr = othis.attr('lay-verify') || '';
var vers = verifyStr.split('|');
- var verType = othis.attr('lay-verType'); //提示方式
+ var verType = othis.attr('lay-verType'); // 提示方式
var value = othis.val();
- othis.removeClass(DANGER); //移除警示样式
+ othis.removeClass(DANGER); // 移除警示样式
- //遍历元素绑定的验证规则
+ // 遍历元素绑定的验证规则
layui.each(vers, function(_, thisVer){
- var isTrue //是否命中校验
- ,errorText = '' //错误提示文本
- ,isFn = typeof verify[thisVer] === 'function';
+ var isTrue; // 是否命中校验
+ var errorText = ''; // 错误提示文本
+ var rule = verify[thisVer]; // 获取校验规则
- //匹配验证规则
- if(verify[thisVer]){
- var isTrue = isFn ? errorText = verify[thisVer](value, item) : !verify[thisVer][0].test(value)
+ // 匹配验证规则
+ if(rule){
+ var isTrue = typeof rule === 'function'
+ ? errorText = rule(value, item)
+ : !rule[0].test(value);
- //是否属于美化替换后的表单元素
- ,isForm2Elem = item.tagName.toLowerCase() === 'select' || /^checkbox|radio$/.test(item.type);
+ // 是否属于美化替换后的表单元素
+ var isForm2Elem = item.tagName.toLowerCase() === 'select' || (
+ /^checkbox|radio$/.test(item.type)
+ );
- errorText = errorText || verify[thisVer][1];
+ errorText = errorText || rule[1];
if(thisVer === 'required'){
errorText = othis.attr('lay-reqText') || errorText;
}
- //如果是必填项或者非空命中校验,则阻止提交,弹出提示
+ // 若为必填项或者非空命中校验,则阻止提交,弹出提示
if(isTrue){
- //提示层风格
+ // 提示层风格
if(verType === 'tips'){
layer.tips(errorText, function(){
if(typeof othis.attr('lay-ignore') !== 'string'){
@@ -732,7 +736,7 @@ layui.define('layer', function(exports){
} else if(verType === 'alert') {
layer.alert(errorText, {title: '提示', shadeClose: true});
}
- //如果返回的为字符或数字,则自动弹出默认提示框;否则由 verify 方法中处理提示
+ // 若返回的为字符或数字,则自动弹出默认提示框;否则由 verify 方法中处理提示
else if(/\bstring|number\b/.test(typeof errorText)){
layer.msg(errorText, {icon: 5, shift: 6});
}
@@ -741,33 +745,17 @@ layui.define('layer', function(exports){
(isForm2Elem ? othis.next().find('input') : item).focus();
}, 7);
- /*
- // 非移动设备自动定位焦点
- if(!device.mobile){
- setTimeout(function(){
- (isForm2Elem ? othis.next().find('input') : item).focus();
- }, 7);
- } else { // 移动设备定位
- $dom.scrollTop(function(){
- try {
- return (isForm2Elem ? othis.next() : othis).focus().offset().top - 15
- } catch(e){
- return 0;
- }
- }());
- }
- */
-
othis.addClass(DANGER);
return stop = true;
}
}
});
+
if(stop) return stop;
});
return !stop;
- }
+ };
// 提交表单并校验
var submit = Form.prototype.submit = function(filter, callback){
diff --git a/src/modules/table.js b/src/modules/table.js
index cf121321..660f9cde 100644
--- a/src/modules/table.js
+++ b/src/modules/table.js
@@ -1144,16 +1144,16 @@ layui.define(['laytpl', 'laypage', 'form', 'util'], function(exports){
}
};
- //数据合计行
+ // 数据合计行
Class.prototype.renderTotal = function(data, totalRowData){
- var that = this
- ,options = that.config
- ,totalNums = {};
+ var that = this;
+ var options = that.config;
+ var totalNums = {};
if(!options.totalRow) return;
layui.each(data, function(i1, item1){
- //若数据项为空数组,则不往下执行(因为删除数据时,会将原有数据设置为 [])
+ // 若数据项为空数组,则不往下执行(因为删除数据时,会将原有数据设置为 [])
if(layui.type(item1) === 'array' && item1.length === 0) return;
that.eachCols(function(i3, item3){
@@ -1171,56 +1171,60 @@ layui.define(['laytpl', 'laypage', 'form', 'util'], function(exports){
var tds = [];
that.eachCols(function(i3, item3){
var field = item3.field || i3;
+
+ // 合计数据的特定字段
+ var TOTAL_NUMS = totalRowData && totalRowData[item3.field];
- //td 内容
+ // td 内容
var content = function(){
- var text = item3.totalRowText || ''
- ,decimals = 'totalRowDecimals' in item3 ? item3.totalRowDecimals : 2
- ,thisTotalNum = parseFloat(totalNums[field]).toFixed(decimals)
- ,tplData = {
+ var text = item3.totalRowText || '';
+ var decimals = 'totalRowDecimals' in item3 ? item3.totalRowDecimals : 2;
+ var thisTotalNum = parseFloat(totalNums[field]).toFixed(decimals);
+ var tplData = {
LAY_COL: item3
- }
- ,getContent;
+ };
tplData[field] = thisTotalNum;
- //获取自动计算的合并内容
- getContent = item3.totalRow ? (parseTempData.call(that, {
+ // 获取自动计算的合并内容
+ var getContent = item3.totalRow ? (parseTempData.call(that, {
item3: item3
,content: thisTotalNum
,tplData: tplData
}) || text) : text;
- //如果直接传入了合计行数据,则不输出自动计算的结果
- return totalRowData ? (totalRowData[item3.field] || getContent) : getContent;
- }()
- ,td = ['
'
- ,' ' + function(){
var totalRow = item3.totalRow || options.totalRow;
- //如果 totalRow 参数为字符类型,则解析为自定义模版
+ // 如果 totalRow 参数为字符类型,则解析为自定义模版
if(typeof totalRow === 'string'){
return laytpl(totalRow).render($.extend({
- TOTAL_NUMS: totalNums[field]
- ,LAY_COL: item3
+ TOTAL_NUMS: TOTAL_NUMS || totalNums[field],
+ LAY_COL: item3
}, item3));
}
return content;
|