一种最简单的方法就是直接在datatype属性里加限制:s1-5表示填1-5个字符,s0-6表示0-6个字符,但是这种方法有种缺陷就是不认标点符号了:
<input type="text" datatype="s0-6" />
上段代码限制了输入框长度为0-6,最少可以不填,最多6个字符,在这里,一个字母(如A/a)、一个汉字,一个数字都是占有一个字符,但是!!!!!
它不支持标点符号,如果输入标点符号,会直接提示输入不符合格式,虽然长度貌似并没有超,但是明显它不认标点符号:
如果既想输入标点又想限制输入长度,可以采取如下操作:
<script type="text/javascript">$("#saveForm").uValidform({btnSubmit:"#saveBtn",datatype:{//传入自定义datatype类型;"length20" : function(gets, obj, curform, regxp) {return isLegalLength(gets, obj, curform, regxp, 20);}},callback:function(form){$.dialog({type: 'confirm',content: '您确定要提交表单吗?',ok: function(){save();},cancel: function(){}});}});function isLegalLength(gets, obj, curform, regxp, lsLen) {// lsLen为你想限制的长度//用于统计输入字段长度的变量 var len = 0;//gets为获取的input框里输入的内容for (var i = 0; i < gets.length; i++) {var a = gets.charAt(i);if (a.match(/[^\x00-\xff]/ig) != null) {//汉字占两个字符len += 2;}else {//其他占一个字符len += 1;}}//这里限制了不能为空,根据需求调整判断条件if(len > lsLen || len < 1) {obj.attr("errormsg", "长度不能超过" + lsLen);return false;}}</script><input type="text" datatype="length20"/>
这段代码着重描述如何限制字段长度,个别地方可能不够完善==
通过自定义的datatype类型,在表单校验的过程中通过js方法判断字段长度,还可以根据需求限定什么类型的输入占几个长度字符,稍微麻烦一些但是支持了标点符号的输入~总之大家根据自己的需求自行选择叭~