+ -
当前位置:首页 → 问答吧 → 你们是怎么做的?关于限制前台页面输入字符串长度

你们是怎么做的?关于限制前台页面输入字符串长度

时间:2011-11-30

来源:互联网

如题。
比如我数据库用oracle,设置字符串长度为varchar2(10),若我在前台限制输入长度为10,那么可以输入10个汉字,显然不符合要求,会超出长度。
这样的问题你们一般是怎么处理的呢?

作者: hanjiaming   发布时间: 2011-11-30

keyup事件的时候验证下。

作者: huleeyar   发布时间: 2011-11-30

给你个例子,可以判断中文+英文长度

JScript code

var   v   =   "你好asd123";   
  var   len   =   0;   
  for(i=0;i<v.length;i++)   
  {   
          if(v.charCodeAt(i)>256)   
          {   
                  len   +=   2;   
          }   
          else   
          {   
                  len++;   
          }   
  }   
  alert("长度是"+len);

作者: liangws   发布时间: 2011-11-30

有没有更简单的方法呢,比如通过设置属性来做,maxlength="10"

作者: hanjiaming   发布时间: 2011-11-30

引用 3 楼 hanjiaming 的回复:

有没有更简单的方法呢,比如通过设置属性来做,maxlength="10"

没有办法。只能用事件判断输入的字符是否超过长度。。

作者: liangws   发布时间: 2011-11-30

HTML code
<input type="text" maxlength="5" />

作者: ifandui   发布时间: 2011-11-30

引用 3 楼 hanjiaming 的回复:

有没有更简单的方法呢,比如通过设置属性来做,maxlength="10"
你应该是遇到浏览器兼容问题才这么问的吧

作者: p2227   发布时间: 2011-11-30

文本框中限制 maxlength 长度
 提交的时候 value.length判断
  后面接收值加 length 判断! 三层判断,比较合理的。

作者: bin79867648   发布时间: 2011-11-30

引用 6 楼 p2227 的回复:
引用 3 楼 hanjiaming 的回复:

有没有更简单的方法呢,比如通过设置属性来做,maxlength="10"
你应该是遇到浏览器兼容问题才这么问的吧

不是的。因为后台数据库是varchar2(10),前台输入10个汉字,插入数据库是会报错的

作者: hanjiaming   发布时间: 2011-11-30

如果你不怕效率低点的话,可以前台不变,在用户提交的时候,直接进行插入操作,然后捕获数据库抛出的异常
只要能在捕获到异常的时候,给用户界面一个响应或者错误提示,还是可以接受的。
这个用Ajax吧,要不实在不太好

作者: chao1513392   发布时间: 2011-11-30

引用 8 楼 hanjiaming 的回复:

引用 6 楼 p2227 的回复:
引用 3 楼 hanjiaming 的回复:

有没有更简单的方法呢,比如通过设置属性来做,maxlength="10"
你应该是遇到浏览器兼容问题才这么问的吧

不是的。因为后台数据库是varchar2(10),前台输入10个汉字,插入数据库是会报错的
那5楼不就最简单的处理了吗

作者: p2227   发布时间: 2011-11-30

作者: sosmile   发布时间: 2011-11-30

引用 10 楼 p2227 的回复:
引用 8 楼 hanjiaming 的回复:

引用 6 楼 p2227 的回复:
引用 3 楼 hanjiaming 的回复:

有没有更简单的方法呢,比如通过设置属性来做,maxlength="10"
你应该是遇到浏览器兼容问题才这么问的吧

不是的。因为后台数据库是varchar2(10),前台输入10个汉字,插入数据库是会报错的
那5楼不就最简单的处理了吗

如果是汉字呢?那就相当于两倍的字符了

作者: hanjiaming   发布时间: 2011-11-30

相关阅读 更多