jeecg3.8popup弹出窗口触发失去焦点事件,引发验证弹窗,影响体验问题的解决办法

  
在初始化表单的代码中添加以下加粗部分,有几个popup就定义几个标志位,主要是防止第一次失去焦点时候的弹窗(此时还未来得及选择),提交表单的时候还是会正常校验的。

//popup触发失去焦点事件,设置不弹提示窗

var userIdFlag=true;
var userIdFlag2=true;
var appIdFlag=true;

$("#formobj").Validform({
tiptype: function(msg, o, cssctl) {
if(userIdFlag && msg=="请填写客户id!"){//不弹提示窗
userIdFlag=false;
return false;
}
if(appIdFlag && msg=="请填写关联app!"){//不弹提示窗
appIdFlag=false;
return false;
}
if(userIdFlag2 && msg=="请填写分析人员id!"){//不弹提示窗
userIdFlag2=false;
return false;
}
if (o.type == 3) {
layer.open({
title: '提示信息',
content: msg,
icon: 5,
shift: 6,
btn: false,
shade:false,time:5000,
cancel: function(index) {
o.obj.focus();
layer.close(index);
},
yes: function(index) {
o.obj.focus();
layer.close(index);
},
})
}
},
btnSubmit: "#btn_sub",
btnReset: "#btn_reset",
ajaxPost: true,
beforeSubmit: function(curform) {
var tag = true;
//提交前处理
return tag;
},
usePlugin: {
passwordstrength: {
minLen: 6,
maxLen: 18,
trigger: function(obj, error) {
if (error) {
obj.parent().next().find(".Validform_checktip").show();
obj.find(".passwordStrength").hide();
} else {
$(".passwordStrength").show();
obj.parent().next().find(".Validform_checktip").hide();
}
}
}
},
callback: function(data) {
if (data.success == true) {
var win = frameElement.api.opener;
win.reloadTable();
win.tip(data.msg);
frameElement.api.close();
} else {
if (data.responseText == '' || data.responseText == undefined) {
$.messager.alert('错误', data.msg);
$.Hidemsg();
} else {
try {
var emsg = data.responseText.substring(data.responseText.indexOf('错误描述'), data.responseText.indexOf('错误信息'));
$.messager.alert('错误', emsg);
$.Hidemsg();
} catch(ex) {
$.messager.alert('错误', data.responseText + '');
}
}
return false;
}
}
});
});
posted @ 2019-03-12 19:43  荒野猛兽  阅读(1189)  评论(0编辑  收藏  举报