input以及textarea中控制字符串长度

    在做表单设计工具时,设置前台域的长度为100,是指100字节,也就是能输入100个英文字符,50个汉字字符。

    前台为阻止用户多输入字符,可如下实现(采用jQuery的写法):

// 控制具有class="cfText"的输入框的长度
$("input.cfText").live("keyup", function(event) {
 var len = parseInt($(this).attr("cf_fieldLength"));
 if (!len) {
  len = 100;
 }

 var strVal = $(this).val().toString() + "";
 // 预期计数:中文2字节,英文1字节
 var a = 0;
 // 临时字串
 var temp = '';
 for ( var i = 0; i < strVal.length; i++) {
  if (strVal.charCodeAt(i) > 255) {
   // 按照预期计数增加2
   a += 2;
  } else {
   a++;
  }
  // 如果增加计数后长度大于限定长度,就直接返回临时字符串
  if (a > len) {
   $(this).val(temp);
   return false;
  }
  // 将当前内容加到临时字符串
  temp += strVal.charAt(i);
 }
 // 没有超长时,直接返回源字符串
 $(this).val(strVal);
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值