jquery的validationEngine表单验证


本文主要引用https://www.cnblogs.com/aliger/p/3898216.html

基于jquery的validationEngine表单验证插件,根据官网提示,该插件支持IE6-8,Chrome浏览器,火狐,Safari,Opera 10,但由于有使用到了css3的阴影和圆角样式,所以在IE浏览器下无法看到圆角和阴影效果(IE 9 支持圆角效果),整体来说还是不错的。

下载地址:https://github.com/posabsolute/jQuery-Validation-Engine

1.默认校验规则 

名称

示例

说明

required

validate[required]

表示必填项

optional

validate[optional]

表示可选项。若不输入,不要求必填,若有输入,则验证其是否符合要求。

dateRange[name]

validate[dateRange[grp1]]

验证日期范围

dateTimeRange[name]

validate[dateTimeRange[grp1]]

验证日期及时间范围

minSize[int]

validate[minSize[6]]

最少输入字符数

maxSize[int]

validate[maxSize[20]]

最多输入字符数

groupRequired[name]

validate[groupRequired[grp2]]

群组中至少输入一项

min[int]

validate[min[1]]

最小值(该项为数字的最小值,注意与 minSize 的区分)

max[int]

validate[max[9999]]

最大值(该项为数字的最大值,注意与 maxSize 的区分)

past[date]

validate[past[2012/12/20]]

日期必需在 date 或 date 的未来。date 格式可写作 YYYY/MM/DD、YYYY/M/D、YYYY-MM-DD、YYYY-M-D 或 now

future[date]

validate[future[now]]

日期必须在 data 或 date 的过去。date 格式可写作 YYYY/MM/DD、YYYY/M/D、YYYY-MM-DD、YYYY-M-D 或 now

maxCheckbox[int]

validate[maxCheckbox[2]]

最多选取的项目数(用于Checkbox)

minCheckbox

validate[minCheckbox[2]]

最少选取的项目数(用于Checkbox)

equals

validate[equals[id]]

当前控件值需与 id 这个控件的值相同

phone

validate[custom[phone]]

验证电话号码

email

validate[custom[email]]

验证 Email 地址

integer

validate[custom[integer]]

验证整数

number

validate[custom[number]]

验证数字

date

validate[custom[date]]

验证日期,格式为 YYYY/MM/DD、YYYY/M/D、YYYY-MM-DD、YYYY-M-D

dateFormat

validate[custom[dateFormat]]

验证日期格式,格式为 YYYY/MM/DD、YYYY/M/D、YYYY-MM-DD、YYYY-M-D

dateTimeFormat

validate[custom[dateTimeFormat]]

验证日期及时间格式,格式为:YYYY/MM/DD hh:mm:ss AM|PM

ipv4

validate[custom[ipv4]]

验证 ipv4 地址

url

validate[custom[url]]

验证 url 地址,需以 http://、https:// 或 ftp:// 开头

onlyNumberSp

validate[custom[onlyNumberSp]]

只接受填数字和空格

onlyLetterSp

validate[custom[onlyLetterSp]]

只接受填英文字母(大小写)和单引号(')

onlyLetterNumber

validate[custom[onlyLetterNumber]]

只接受数字和英文字母

ajax

validate[ajax[ajaxUserCallPhp]]

在验证规则中自定义

"ajaxUserCallPhp":{

"url":"phpajax/ajaxValidateFieldUser.php",

"extraData":"name=eric",

"alertTextOk":"* 此帐号名称可以使用",

"alertText":"* 此名称已被其他人使用",

"alertTextLoad":"* 正在确认帐号名称是否有其他人使用,请稍等。"

funcCall

validate[funcCall[functionName]]

调用外部函数

验证规则均写在 validate[] 中,如有多条规则,用英文逗号(,) 分割,如:

2.引用



<script src="assets/formvalidation/validationengine/js/lang/jquery.validationEngine-zh_CN.js"></script>

<script src="assets/formvalidation/validationengine/js/jquery.validationEngine.min.js"></script>

3.初始化及提交表单

<script>
//初始化

$(document).ready(function() {
$('#pkForm').validationEngine();
});

//提交表单
function ok(){
var result = $('#pkForm').validationEngine('validate');

if(!result){

return false;

onSubmitV();
}

var isFlag = false;
function onSubmitV()
{
 
if(isFlag==true)
{
alert("请不要重复提交");
return ;
}

isFlag= true;
$.ajax({
type : "POST",
url : "/sys/user/save",
data : $('#pkForm').serialize(),
dataType : 'json',
success : function (data){
isFlag= false;
if(data.status==true)
{
alert("操作成功");
window.location="/sys/user/list";

}else{
alert(data.msg);

}
},
error : function(){

alert('网络错误,请稍后重试!');
isFlag=false;
},
cache: false

});
}

</script>
 user_add.jsp的一个示例
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>




    
    用户操作 
     
    
  
    
         <script src="/static/common/jquery-3.3.1.min.js"></script>
      
  
  <script type="text/javascript" src="/static/common/zTree_v3/js/jquery.ztree.core.min.js"></script>
   
<script src="/static/common/jquery-Validation/js/languages/jquery.validationEngine-zh_CN.js"></script>
<script src="/static/common/jquery-Validation/js/jquery.validationEngine.min.js"></script>
   

 class="bg-light">
      
class="col-md-8 order-md-1">

class="mb-3">${bean.id ==null ? "新增" : "编辑"}用户


class="needs-validation" name="pkForm" id="pkForm" action="/sys/user/save" method="post" novalidate> if test="${bean.id!=null}">
class="row">
class="col-md-6 mb-3"> class="form-control" readonly value="${bean.id }" />
if>
class="row">
class="col-md-6 mb-3"> class="form-control validate[required,maxSize[20]]" maxlength="20" name="useraccount" id="useraccount" value="${bean.useraccount }" onblur="accountExist();" placeholder="请填写账号" required>
class="invalid-feedback"> 请填写账号
class="col-md-6 mb-3"> class="form-control validate[required,maxSize[20]]" name="username" value="${bean.username}" maxlength="20" placeholder="用户名字" required>
class="invalid-feedback"> 请填写用户名称
class="row">
class="col-md-6 mb-3"> class="form-control validate[required]" name="companyName" id="companyName" value="${bean.companyName}" readonly placeholder="请选择集团名称" onclick="showMenu();" required>
class="col-md-6 mb-3">
class="layui-input-block" id="hotels">
class="row">
class="col-md-6 mb-3"> class="form-control validate[required,maxSize[11],custom[number],custom[phone]]" maxlength="20" name="mobile" value="${bean.mobile}" placeholder="请填写电话" required>
class="invalid-feedback"> 请填写联系人电话
class="col-md-6 mb-3"> class="form-control validate[custom[email]]" name="email" value="${bean.email}" maxlength="30" placeholder="邮箱" placeholder="请填写邮箱" required>
class="invalid-feedback"> 请填写邮箱
class="row">
class="col-md-6 mb-3">
class="col-md-6 mb-3">
class="row">
class="col-md-6 mb-3"> class="form-control validate[required,,custom[number],maxSize[10]]" name="cardId" value="${bean.cardId}" maxlength="10" placeholder="卡ID" />
class="col-md-6 mb-3">
class="btn btn-primary btn-lg btn-block" type="button" value="提 交" onclick="ok();" /> 提醒:新增用户默认密码为8888,登录后请重新修改密码
<script src="/static/common/bootstrap/assets/dist/js/bootstrap.bundle.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#pkForm').validationEngine(); }); function ok(){ var result = $('#pkForm').validationEngine('validate'); if(!result){ return false; } onSubmitV(); } var isFlag = false; function onSubmitV() { var vals=""; $("input:checkbox[name='selhotels']:checked").each(function(i){ vals+= $(this).val()+","; }); $("#hotelVal").val(vals); if(isFlag==true) { alert("请不要重复提交"); return ; } isFlag= true; $.ajax({ type : "POST", url : "/sys/user/save", data : $('#pkForm').serialize(), dataType : 'json', success : function (data){ isFlag= false; if(data.status==true) { alert("操作成功"); window.location="/sys/user/list"; }else{ alert(data.msg); } }, error : function(){ alert('网络错误,请稍后重试!'); isFlag=false; }, cache: false }); } function accountExist(){ var account=$("#useraccount").val(); var id=$("#id").val(); if( id==""&&account!=""){ $("#valdate").show(); $.ajax({ url:"${path}/sys/user/accountExist", type:'post', data: {"account":account}, success:function(data){ if($.trim(data)!=""){ //Stch = true; $("#valdate").html("账号已经存在,请重新填写!"); valueDate=false; }else{ valueDate=true; $("#valdate").html(""); $("#valdate").hide(); }; } }); } } function getHotelList(ltdCode){ var userHotelList="${userHotelList}"; $.ajax({ url:"${path}/sys/hotel/pagelist?ltdCode="+ltdCode+"&numPerPage=50", success:function(data){ var hotelList=data.data; if(hotelList!=null){ $("#hotels").empty(); for(var i=0;i) { var str=""; if(userHotelList!=""&&userHotelList.indexOf(hotelList[i].id)!=-1) { str="checked"; } $("#hotels").append(""+hotelList[i].name+" "); } }else{ alert("没有可选的酒店"); }; } }); } window.onload=function() { var companyid = "${bean.companyid }"; if(companyid!="") { getHotelList(companyid); } } var zTreeObj; //zTree 的参数配置,深入使用请参考 API 文档(setting 配置详解) var setting = { view: { dblClickExpand: false }, data: { simpleData: { enable: true, //true 、 false 分别表示 使用 、 不使用 简单数据模式 idKey: "id", //节点数据中保存唯一标识的属性名称 pIdKey: "parentid", //节点数据中保存其父节点唯一标识的属性名称 rootPId: -1 //用于修正根节点父节点数据,即 pIdKey 指定的属性值 }, key: { name: "name" //zTree 节点数据保存节点名称的属性名称 默认值:"name" } }, check:{ enable:true, //true 、 false 分别表示 显示 、不显示 复选框或单选框 nocheckInherit:true //当父节点设置 nocheck = true 时,设置子节点是否自动继承 nocheck = true } , callback: { onClick: onClick } }; var isShow = false; function showTree() { if(isShow ==true) return ; $.ajax({ type : "POST", url : "/sys/company/tree", dataType : 'json', success : function (data){ var zNodes=data; zTreeObj = $.fn.zTree.init($("#treeDemo"), setting, zNodes); zTreeObj.expandAll(true); //true 节点全部展开、false节点收缩 if($("#parentid").val()!="") { var a=zTreeObj.getNodeByParam("id",$("#parentid").val() ); zTreeObj.selectNode(a,true); } }, error : function(){ alert('网络错误,请稍后重试!'); isFlag=false; }, cache: false }); isShow = true; } function showMenu() { var cityObj = $("#companyName"); var cityOffset = $("#companyName").offset(); $("#menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast"); $("body").bind("mousedown", onBodyDown); showTree(); } function hideMenu() { $("#menuContent").fadeOut("fast"); $("body").unbind("mousedown", onBodyDown); } function onBodyDown(event) { if (!(event.target.id == "menuBtn" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length>0)) { hideMenu(); } } function onClick(event, treeId, treeNode, clickFlag) { getHotelList(treeNode.id); $("#companyid").val(treeNode.id); $("#companyName").val(treeNode.name); } </script>
js