validate 动态返回错误信息

 引入相关js

	<!-- jquery-validate 表单验证插件 -->
	<script th:src="@{/theme/ajax/libs/validate/jquery.validate.js}"></script>
	<script th:src="@{/theme/ajax/libs/validate/validate-methods.js}"></script>
	<script th:src="@{/theme/ajax/libs/validate/messages_zh.min.js}"></script>
	<script th:src="@{/theme/ajax/libs/validate/old/jquery.validate.extend.js}"></script>

 示例

<div class="form-group">
				<label class="col-sm-3 control-label">部门名称:</label>
				<div class="col-sm-8">
					<input class="form-control" type="text" name="deptName" id="deptName" required>
				</div>
			</div>


$("#form-dept-add").validate({
			onkeyup: false,
			rules:{
				deptName:{
					required: true,
					checkDeptUnique :true  //自定义addMethod方法
					/* 不用这种方式,不能自定义返回信息

                    remote: {
		                url:  ctx + "system/SysDeptController/checkDeptUnique",
		                type: "post",
		                dataType: "json",
		                data: {
		                	"parentId": function() {
		                		return $("input[name='parentId']").val();
		                    },
		                	"deptName" : function() {
		                        return $.common.trim($("#deptName").val());
		                    }
		                },
		                dataFilter: function(data, type) {
		                	data = JSON.parse(data);
		                	msgs = data.msg;
		                	return {success:true,messages:"222"};
		                	//return $.validate.unique(data.code);
		                }
		            } */
				},
				orderNum:{
					digits:true
				},
				email:{
                    email:true,
        		},
        		phone:{
        			isPhone:true,
        		},
			},
			messages: {
				deptName: {
	                required: "已存在"
	            }
		       /*  "deptName": {
		            remote: msgs
		        } */
		    },
		    focusCleanup: true
		});

 

 addMethod新增

validate-methods.js

...

//校验部门唯一
	jQuery.validator.addMethod("checkDeptUnique", function (value, element, param) {
	    var flag = true ;
	    var result = '' ;
	    $.ajax({
            url:  ctx + "system/SysDeptController/checkDeptUnique",
	        data : {
	        	deptName : value,
	        	"parentId": function() {
            		return $("input[name='parentId']").val();
                },
	        },
	        async : false,
	        type: "post",
            dataType: "json",
	        success : function(data) {
	            if(data.code == "0" || data.code == 0 ) {
	            	flag = true;
	            }else{
	                flag = false ;
	                result =  data.msg ;
	            }
	        }
	    });
	    $.validator.messages.checkDeptUnique = result;
	    return flag;
	}) ; 

相关java返回值示例,  AjaxResult为自定义的返回类

/**
	 * 校验部门名称 或 部门code
	 */
	@PostMapping(value="/checkDeptUnique",produces="application/json;charset=UTF-8")
	@ResponseBody
	public AjaxResult checkDeptNameUnique(SysDept dept) {
		if (StringUtils.isNull(dept.getDeptName()) || 
             StringUtils.isEmpty(dept.getDeptName())) {
			return AjaxResult.warn("缺少参数deptName", dept);
		}
		dept = iSysDeptService.checkDeptNameUnique(dept);
		if (dept != null) {
			return new AjaxResult(Type.ERROR, "存在重复数据", dept);
		}
		return AjaxResult.success();
	}

//返回示例对象
{"msg":"存在重复数据","code":500,"data":{"deptName":"123","deptCode":null}}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值