在表单的input里,通过maxlength来控制长度,对中文是没有效果的。只能从后台来判断,代码如下:
java 代码
- String fgmc = rule.getFgmc();
- if(fgmc!= null && !fgmc.equals("")){
- byte[] bytes = fgmc.getBytes();
- if (bytes != null && bytes.length>100){
- returnCode = "法规名称长度不能超过100字符(一个汉字占两个字符)!";
- return returnCode;
至于textarea,控制他的长度的代码为:
js 代码
- <script>
function checklen(obj){
var lenE = obj.value.length;
var lenC = 0;
var CJK = obj.value.match(/[\u4E00-\u9FA5\uF900-\uFA2D]/g);
if (CJK != null) lenC += CJK.length;
tno.innerText = obj.maxlength - lenC - lenE ;
if (tno.innerText < 0) {
var tmp = 0
var cut = obj.value.substring(0, obj.maxlength);
for (var i=0; i<cut.length; i++){<br=""> tmp += /[\u4E00-\u9FA5\uF900-\uFA2D]/.test(cut.charAt(i)) ? 2 : 1;
if (tmp > obj.maxlength) break;
}
obj.value = cut.substring(0, i);
}
}
</script>
HTML部分代码
js 代码
- <(body) onload="tno.innerText = s1.maxlength;">
- <(textarea) name="s1" rows="5" cols="50" maxlength="1000" onpropertychange="checklen(this)"></textarea>
- 剩余<span id="tno"></span>个字符