我要对JSP 页面文本框的输入值进行校验,这个文本框输入的值是一个“车牌号”,但这个车牌号在数据库长度为varchar(15), 文本框只能输入“暂未上牌”,“不详”,和正常的车牌号,反正最终的输入值在数据库长度不能大于15 就可以了,因为一个中文在数据库占 3个字节,请问我在页面上如何控制呢?JavaScript

解决方案 »

  1.   

    只要设置文本框最大长度即可了
    <input type="text" name="t" id="t" maxlength="15" >
    数据库中varchar长度是根据你的字符编码自动判断的,也就是你输入15个英文也可以,输入15个中文也可以,不是按照字节数。同时数据库会自动截掉超过定义长度的字符,也就是如果你提交了20个中文的内容到后端插入数据库,实际也只有前15个保存在表中。
      

  2.   


    var str = document.getElementById('input')
    if(str!='暂未上牌' || str!='不详'){
        if(getLen(str)>15){
            alert('非法输入');
            return;
        }
    }function getLen(str){
        var len = str.length,znLen = 0;
        for(var i=0;i<len;i++){
            if(str.charCodeAt(i)>255){
                znLen += 2;
            }
        }
        return len+znLen;
    }