Monday, May 16, 2011

ASP.NET - Limit number of characters in TextBox control

I researched Internet and found a perfect solution . I would like to copy the solution into my blog for future references.

Here it is:

1. Create folder Scripts and file JScript.js in it. Copy and paste this code into it.

function validateLimit(obj, divID, maxchar) {

objDiv = get_object(divID);

if (this.id) obj = this;

var remaningChar = maxchar - trimEnter(obj.value).length;


if (objDiv.id) {
objDiv.innerHTML = remaningChar + " characters left"; }
if (remaningChar <= 0) {
obj.value = obj.value.substring(maxchar, 0);

if (objDiv.id) { objDiv.innerHTML = "0 characters left";}
return false;
}
else
{ return true; }
}

function get_object(id) {

var object = null;
if (document.layers) {
object = document.layers[id];
} else if (document.all) {
object = document.all[id];
} else if (document.getElementById) {
object = document.getElementById(id);
}
return object;
}
function trimEnter(dataStr) {
return dataStr.replace(/(\r\n|\r|\n)/g, "");
}

2. Create aspx-page and insert a code below:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Without master page</title>
<script type="text/javascript" src="Scripts/JScript.js" ></script>
</head>
<body>
<form id="form1" runat="server">
<div id="lblMsg1">240 characters left</div>
<asp:TextBox ID="TextBox1" runat="server" Height="50px" MaxLength="240" TextMode="MultiLine"
Width="600px" ToolTip="Summary:(240 characters)"
onkeyup="return validateLimit(this, 'lblMsg1', 240)"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="TextBox1" Display="Dynamic"
SetFocusOnError="True">*</asp:RequiredFieldValidator>
<br /><br /><br />
</form>
</body>
</html>

3. Test the aspx-page.

No comments:

Post a Comment