var danger = document.getElementById("domain.dangerAndMeasure").value;
if(danger.length > 500) {
alert("施工危险点及对应措施 的长度不能超过1000!");
return;
}
javascript 的 length 属性 貌似对于中文也是计算一个长度 而不是两个字节
而 hibernate表映射文件
<property name="dangerAndMeasure" type="java.lang.String">
<column name="DANGER_AND_MEASURE" length="1000" />
</property>
这里的单位是 1000个字节
所以页面验证字段长度的时候,客户输入的是中文的话,你输1000个中文,JS 计算的是1000个长度,而插入数据的时候此字段的长度就已经是 2000字节了。随意肯定报错。
但是如果用户输入数字或者字母的时候,JS只算1个字节的长度 ,所以中英混输的时候,真不好精确把握好这个字段的长度验证。 暂时还没想到很好的解决方案!