We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

MultiLine textbox -want to limit to 26 characters

MikeMCSD
MikeMCSD asked
on
Medium Priority
1,070 Views
Last Modified: 2009-12-18
I have a MultiLine textbox in a DataGrid that I want to limit to 26 characters max.

The MaxLength="26" property does not work for MulitLine textboxes.
I'm trying to use a Validator but it is not working:

<asp:TemplateColumn>
<ItemTemplate>
...........

<asp:TextBox ID="txtEng" TextMode="MultiLine" Rows="3" Width="245"
  Runat="server"></asp:TextBox>

<asp:RegularExpressionValidator ID="regex"
  ControlToValidate="txtEng"
  ValidationExpression="^{1,26}$"
  Text="Engravings can only be a maxiumum of 26 characters"
  Display="Dynamic"
  ErrorMessage="Engravings can only be a maxiumum of 26 characters"
  Runat="server" />

Any ideas on how I can limit the text to 26 characters max?  thanks
Comment
Watch Question

Commented:
Add this to your page:

            <script language="javascript">
                  function checkLength(val,maxlen)
                  {
                        if (val.value.length > maxlen)
                              val.value = val.value.substr(0, maxlen)
                  }
            </script>


add this to your textbox:
onkeyup="checkLength(this,5)"

so it looks like this:
asp:TextBox ID="txtEng" TextMode="MultiLine" Rows="3" Width="245"
  Runat="server" onkeyup="checkLength(this,5)"></asp:TextBox>

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Commented:
asp:TextBox ID="txtEng" TextMode="MultiLine" Rows="3" Width="245"
  Runat="server" onkeyup="checkLength(this,26)"></asp:TextBox>

Commented:
or you could use all in one line...like this:

onkeyup ="if(this.value.length>26) this.value=this.value.substring(0,26)"

you can also use "onblur" event

Author

Commented:
thanks ak . . that works expect for when
the enter key is pressed. example:
Dear John
blahab blah
....
then it limits the number of characters to less than 18 or so.

this multiline texbox is a pain!
Commented:
<asp:RegularExpressionValidator ID="revExample" runat="server" ControlToValidate="txtExample"
    Display="Dynamic" ErrorMessage="Exceeded 26 Characters!" ValidationExpression="^[\w\W]{0,26}$">
</asp:RegularExpressionValidator>

Commented:
@MikeMCSD have you tried my solution, I am pretty sure it will solve your problems even when a user presses the enter key.

Author

Commented:
thanks, just tried it pt . . if I type in:
Dear John
Thanks
Love Mary
...which is 24 characters, it gives the message
"Exceeded 26 Characters!"
I think maybe it's including the enter key as a character . .

Commented:
I was going to mention that it probably counts the enter key as one of the characters.  This, however, is probably the closest you are going to get witht he Regular Expression Validator.  The enter key has to count as something.

Commented:
Instead of using a regular expression validator, use a custom validator that checks the length of the text.

Private Sub cvEng_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles cvEng.ServerValidate
   if (txtEng.text.length > 26)
     args.IsValid = false;
   else
     args.IsValid = true;
   end if
End Sub

Author

Commented:
I'll have to come back to this later. thanks for your help
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.