feiyang10086 发表于 2012-02-03 17:17

jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截

jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截




Html代码1.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2.<HTML>
3. <HEAD>
4.<TITLE> New Document </TITLE>
5.<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
6. </HEAD>
7.
8. <BODY>
9.   
10.<div>   
11.<textarea id="txtPrizeNote" runat="server" height="74px" width="480px" maxlength="10"   
12.style="width: 480px; height: 74px; float: left"></textarea>   
13.<span style="color: Red;">*</span><br />   
14.剩余字数:<span id="showmsg" style="color: red"></span>   
15.</div>   
16. </BODY>
17.</HTML>
18.
19.<script type="text/javascript">   
20.//返回val的字节长度   
21.function getByteLen(val) {   
22.var len = 0;   
23.for (var i = 0; i < val.length; i++) {   
24.if (val.match(/[^\x00-\xff]/ig) != null) //全角   
25.len += 2;   
26.else   
27.len += 1;   
28.}   
29.return len;   
30.}   
31.//返回val在规定字节长度max内的值   
32.function getByteVal(val, max) {   
33.var returnValue = '';   
34.var byteValLen = 0;   
35.for (var i = 0; i < val.length; i++) {   
36.if (val.match(/[^\x00-\xff]/ig) != null)   
37.byteValLen += 2;   
38.else   
39.byteValLen += 1;   
40.if (byteValLen > max)   
41.break;   
42.returnValue += val;   
43.}   
44.return returnValue;   
45.}   
46.$(function() {   
47.var _area = $('textarea#txtPrizeNote');   
48.var _info = _area.next();   
49.var _max = _area.attr('maxlength');   
50.var _val;   
51._area.bind('keyup change', function() { //绑定keyup和change事件   
52.if (_info.find('span').size() < 1) {//避免每次弹起都会插入一条提示信息   
53._info.append(_max);   
54.}   
55._val = $(this).val();   
56._cur = getByteLen(_val);   
57.if (_cur == 0) {//当默认值长度为0时,可输入数为默认maxlength值   
58._info.text(_max);   
59.} else if (_cur < _max) {//当默认值小于限制数时,可输入数为max-cur   
60._info.text(_max - _cur);   
61.} else {//当默认值大于等于限制数时   
62._info.text(0);   
63.$(this).val(getByteVal(_val,_max)); //截取指定字节长度内的值   
64.}   
65.});   
66.});   
67.</script>   
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
</HEAD>

<BODY>

<div>
<textarea id="txtPrizeNote" runat="server" height="74px" width="480px" maxlength="10"
style="width: 480px; height: 74px; float: left"></textarea>
<span style="color: Red;">*</span><br />
剩余字数:<span id="showmsg" style="color: red"></span>
</div>
</BODY>
</HTML>

<script type="text/javascript">
//返回val的字节长度
function getByteLen(val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
if (val.match(/[^\x00-\xff]/ig) != null) //全角
len += 2;
else
len += 1;
}
return len;
}
//返回val在规定字节长度max内的值
function getByteVal(val, max) {
var returnValue = '';
var byteValLen = 0;
for (var i = 0; i < val.length; i++) {
if (val.match(/[^\x00-\xff]/ig) != null)
byteValLen += 2;
else
byteValLen += 1;
if (byteValLen > max)
break;
returnValue += val;
}
return returnValue;
}
$(function() {
var _area = $('textarea#txtPrizeNote');
var _info = _area.next();
var _max = _area.attr('maxlength');
var _val;
_area.bind('keyup change', function() { //绑定keyup和change事件
if (_info.find('span').size() < 1) {//避免每次弹起都会插入一条提示信息
_info.append(_max);
}
_val = $(this).val();
_cur = getByteLen(_val);
if (_cur == 0) {//当默认值长度为0时,可输入数为默认maxlength值
_info.text(_max);
} else if (_cur < _max) {//当默认值小于限制数时,可输入数为max-cur
_info.text(_max - _cur);
} else {//当默认值大于等于限制数时
_info.text(0);
$(this).val(getByteVal(_val,_max)); //截取指定字节长度内的值
}
});
});
</script> 引自:http://www.jb51.net/article/25001.htm

如果有一天21 发表于 2012-02-03 17:17

谢谢分享

pitonas 发表于 2012-02-04 21:58

推荐

lastfile 发表于 2012-02-05 00:31

谢谢分享,收下:lol
页: [1]
查看完整版本: jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截