HTML5 input输入框限制字段长度
2025-01-29
一种最简单的方法就是直接在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方法判断字段长度,还可以根据需求限定什么类型的输入占几个长度字符,稍微麻烦一些但是支持了标点符号的输入~总之大家根据自己的需求自行选择叭~