精确控制输入框的中英文输入字数
<script language="javascript" type="text/javascript">
<!--
function limitLength(value, byteLength, attribute)
{
var newvalue = value.replace(/[^\x00-\xff]/g, "**");
var length = newvalue.length;
//当填写的字节数小于设置的字节数
if (length * 1 <=byteLength * 1)
{
return;
}
var limitDate = newvalue.substr(0, byteLength);
var count = 0;
var limitvalue = "";
for (var i = 0; i < limitDate.length; i++)
{
var flat = limitDate.substr(i, 1);
if (flat == "*")
{
count++;
}
}
var size = 0;
var istar = newvalue.substr(byteLength * 1 - 1, 1);//校验点是否为“×”
//if 基点是×; 判断在基点内有×为偶数还是奇数
if (count % 2 == 0)
{
//当为偶数时
size = count / 2 + (byteLength * 1 - count);
limitvalue = value.substr(0, size);
}
else
{
//当为奇数时
size = (count - 1) / 2 + (byteLength * 1 - count);
limitvalue = value.substr(0, size);
}
alert("最大输入" + byteLength + "个字节(相当于"+byteLength /2+"个汉字)!");
document.getElementById(attribute).value = limitvalue;
//document.getElementById("msg").innerHTML= byteLength;
return;
}
//-->
</script>
<asp:TextBox runat="server" ID="txtComment" Height="77px"
ontextchanged="txtComment_TextChanged" TextMode="MultiLine" Width="307px"></asp:TextBox>
<textarea runat="server" cols="50" rows="10" name="explain" id="explain"></textarea>
在后台page_load中加入:
explain.Attributes["onpropertychange"] = "limitLength(this.value,10,'explain')";
完整的页面前台代码是:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>DropdownList</title>
<script language="javascript" type="text/javascript">
<!--
function limitLength(value, byteLength, attribute)
{
var newvalue = value.replace(/[^\x00-\xff]/g, "**");
var length = newvalue.length;
//当填写的字节数小于设置的字节数
if (length * 1 <=byteLength * 1)
{
return;
}
var limitDate = newvalue.substr(0, byteLength);
var count = 0;
var limitvalue = "";
for (var i = 0; i < limitDate.length; i++)
{
var flat = limitDate.substr(i, 1);
if (flat == "*")
{
count++;
}
}
var size = 0;
var istar = newvalue.substr(byteLength * 1 - 1, 1);//校验点是否为“×”
//if 基点是×; 判断在基点内有×为偶数还是奇数
if (count % 2 == 0)
{
//当为偶数时
size = count / 2 + (byteLength * 1 - count);
limitvalue = value.substr(0, size);
}
else
{
//当为奇数时
size = (count - 1) / 2 + (byteLength * 1 - count);
limitvalue = value.substr(0, size);
}
alert("最大输入" + byteLength + "个英文(或"+byteLength /2+"个汉字)!");
document.getElementById(attribute).value = limitvalue;
//document.getElementById("msg").innerHTML= byteLength;
return;
}
//-->
</script>
</head>
<body>
<form id="form1" runat="server">
<textarea runat="server" cols="50" rows="10" name="explain" id="explain"></textarea>
</form>
</body>
</html>