Validform自定义规则同时校验长度和判重

Validform自定义规则

背景

本页面是一个部署服务页面
上一个页面是服务列表页面
我们希望能够在在部署服务的时候,检查一下服务名是否重复
于是就需要自定义规则

代码

html部分为:

<form class="form-horizontal" id="saveForm" style="margin-top: 15px;" onsubmit="return false;">
    <div class="col-sm-9">
	   <input type="text" class="form-control ue-form Validform_input" id="name" placeholder="请输入服务名称" 
	             datatype="keepSingle" nullmsg="服务名称不能为空"/>
	  <span class="Validform_checktip Validform_span"></span>
    </div>
</form>

表单id为saveForm,自定义方法名为keepSingle,uvalidform是公司封的方法,使用validform也可以正常用。

js部分为

$("#saveForm").uValidform({
		datatype:{
		    "keepSingle":function(gets,obj,curform){
		    	var tf = global.names.indexOf(gets);		    	
		    	if (global.names.indexOf(gets) > -1){
		    		return "模型重名";
		    	}else if (gets.length > 20){
		    		return '名称需小于20字符';
		    	}
		    }
	    },
	    btnSubmit:"#deployBtn",
	    callback:function(form){
	        $.dialog({
	            type: 'confirm',
	            content: '您确定要提交表单吗?',
	            ok: function () {save();},
	            cancel: function () {}
	        });
	    }
	  });

这个names是我的名字列表,就是要看这列表里重不重

探索过程

我需要校验长度和重复嘛,需要两个方法。本来我照着网上的教程,在validform方法体里写tiptype:2,然后input里写
datatype="keepSingle,s1-20"
结果这两个方法全部失灵。
就这个-> 虽然这个链接里的方法跑起来也没有预想的结果,但是可以借鉴

后来我觉得可以写一个自定义方法,然后方法体里一起处理长度和重复的问题,然后return不一样的信息。
最后试成功了。

有两个tip

第一个是跟在input后面的span不可以删除,在内部处理的时候,会判断有没有这个类Validform_checktip。具体我也没看懂,但是删了就显示不出来提示了。

然后自定义方法体里return出的字符串,在validform方法里是使用的.text()方法,所以不能插入html标签,这是让我比较失落的地方,要是能.html(),就可以插小图标之类的东西了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值