JEECG 表单校验采用的是validform,默认的校验提示须要占用页面布局,提示效果较传统。jeecg这个自定义的校验提示风格,不占用页面布局,提示效果也更美观,简单易用,让表单看起来更漂亮!!!此文章绝对福利贴。。。javascript
【使用方法】 JEECG 3.7.8及以上版本使用方法:css
t:formvalid标签设置 tiptype="6"java
<t:formvalid formid="formobj2" tiptype="6" >
方式一:【UI标签用法】JEECG 3.7.7及如下版本formvalid标签升级方法以下:web
【1】、增长提示框样式文件(/src/main/webapp/plug-in/Validform/css/tiptype.css)app
/* * css: 表单校验提示 * ----------*/
webapp
.poptip{z-index:1000;position: absolute;top: 20px;left:20px;padding: 6px 10px 6px;*padding: 7px 10px 5px;line-height: 16px;color: #fff;font-size: 12px;background-color: #B94A48;border: solid 1px #B94A48;border-radius: 2px;box-shadow: 0 0 3px #ddd;}
布局
.poptip-arrow{position: absolute;overflow: hidden;font-style: normal;font-family: simsun;text-shadow:0 0 2px #ccc;}
ui
.poptip-arrow em,.poptip-arrow i{position: absolute;left:0;top:0;font-style: normal;}
spa
.poptip-arrow em{color: #B94A48;}
code
.poptip-arrow i{color: #B94A48;text-shadow:none;}
.poptip-arrow-top,.poptip-arrow-bottom{height: 6px;width: 12px;left:12px;margin-left:-6px;}
.poptip-arrow-left,.poptip-arrow-right{height: 12px;width: 6px;top: 12px;margin-top:-6px;}
.poptip-arrow-top{top: -6px;}
.poptip-arrow-top em{top: -1px;}
.poptip-arrow-top i{top: 0px;}
.poptip-arrow-bottom{bottom: -6px;}
.poptip-arrow-bottom em{top: -8px;}
.poptip-arrow-bottom i{top: -9px;}
.poptip-arrow-left{left:-6px;}
.poptip-arrow-left em{left:1px;}
.poptip-arrow-left i{left:2px;}
.poptip-arrow-right{right:-6px;}
.poptip-arrow-right em{left:-6px;}
.poptip-arrow-right i{left:-7px;}
【2】、增长提示框相关js(src/main/webapp/plug-in/Validform/js/tiptype.js)
//提示信息
function validationMessage(obj, Validatemsg) {
try {
removeMessage(obj);
obj.focus();
var $poptip_error = $('<div class="poptip"><span class="poptip-arrow poptip-arrow-top"><em>◆</em></span>' + Validatemsg + '</div>').css("left", obj.offset().left + 'px').css("top", obj.offset().top + obj.parent().height() + 5 + 'px')
$('body').append($poptip_error);
if (obj.hasClass('form-control') || obj.hasClass('ui-select')) {
obj.parent().addClass('has-error');
}
if (obj.hasClass('ui-select')) {
$('.input-error').remove();
}
obj.change(function () {
if (obj.val()) {
removeMessage(obj);
}
});
if (obj.hasClass('ui-select')) {
$(document).click(function (e) {
if (obj.attr('data-value')) {
removeMessage(obj);
}
e.stopPropagation();
});
}
return false;
} catch (e) {
alert(e)
}
}
//移除提示
function removeMessage(obj) {
obj.parent().removeClass('has-error');
$('.poptip').remove();
$('.input-error').remove();
}
【3】、formvalid标签代码逻辑集成(org/jeecgframework/tag/core/easyui/FormValidationTag.java)
FormValidationTag代码修改:扩展tiptype值为6时展现该效果
3.一、doEndTag()方法中开始位置,引入(1)(2)中的css 和js(tiptype值为6时引入)
if("6".equals(tiptype)){
sb.append("<link rel=\"stylesheet\" href=\"plug-in/Validform/css/tiptype.css\" type=\"text/css\"/>");
sb.append("<script type=\"text/javascript\" src=\"plug-in/Validform/js/tiptype.js\"></script>");
}
3.二、doEndTag()方法中找到tiptype针对不一样值的处理逻辑,添加tiptype值为6时的逻辑处理
else if("6".equals(tiptype)){
sb.append("tiptype:function(msg,o,cssctl){");
sb.append("if(o.type==3){");
sb.append(" ValidationMessage(o.obj,msg);");
sb.append("}else{");
sb.append("removeMessage(o.obj);");
sb.append("}");
sb.append("},");
}
方式二:【原生态写法】不使用标签validform提交表单,升级方法以下
【1】、页面引入2中的css和js
<link rel="stylesheet" href="plug-in/Validform/css/tiptype.css" type="text/css"/>
<script type="text/javascript" src="plug-in/Validform/js/tiptype.js"></script>
【2】、validform组件自定义tiptype,validform组件调用时设置tiptype以下:
tiptype:function(msg,o,cssctl){
if(o.type==3){
validationMessage(o.obj,msg);
}else{
removeMessage(o.obj);
}
}