Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

TextChanged event not working

Posted on 2004-08-27
7
Medium Priority
?
3,336 Views
Last Modified: 2008-01-09
I want to check the length of letters in the textbox. If the length equals 7 then I want to shift the focus to the next textbox control.

I have added the following in the textboxchanged event

Private Sub txtSaleItem_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtSaleItem.TextChanged
        If Len(txtSaleItem.Text) = 7 Then
            Call SetFocus.set_focus(Me, txtSaleQty)
        End If
End Sub

Public Class SetFocus
    Public Shared Sub set_focus(ByRef p_page As System.Web.UI.Page, ByVal p_control As System.Web.UI.Control)
        Dim w_str As String
        If Not (p_control Is Nothing) Then
            w_str = "<script language=JavaScript>document.forms(0).elements['" & p_control.ClientID().ToString() & "'].focus();</script>"
            p_page.Controls.Add(New System.Web.UI.LiteralControl(w_str))
        End If
    End Sub
End Class



I have set the textbox Autopostback property to TRUE.

The event is firing when the textbox loses focus but I want it to fire as the the user enters the letters and check for the length of text in the textbox.

Help would be appreciated.
Thanks
0
Comment
Question by:wilkersons
  • 4
  • 3
7 Comments
 
LVL 6

Expert Comment

by:dgelinas
ID: 11913304
Sounds to me like you would only be able to do that using Javascript.

In javascript you can write a function that will check the length of the field value from the onkeyup property of the field.  Test the below working code.

<html>
<head>
</head>

<body>
<script>
  function check(field) {
    if(field.value.length==7){
        document.forms[0].field2.focus();
      }
  }
</script>

<form id="form1">
<input name="field1" type="text" onkeyup="check(this)">
<br>
<br>
<input name="field2" type="text">
<br>
<br>
</form>

</body>
</html>
0
 

Author Comment

by:wilkersons
ID: 11913558
Well, I am user the textbox server control and it does not have keyup or keydown events...so where should I use the

check(this)  function??

0
 
LVL 6

Expert Comment

by:dgelinas
ID: 11913962
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="iso-8859-1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<script>
  function check(field) {
    if(field.value.length==7){
        document.forms[0].field2.focus();
      }
  }
</script>
<form runat="server">
<asp:Textbox id="field1" runat="server" OnKeyUp="check(this)"></asp:Textbox>
<asp:Textbox id="field2" runat="server"></asp:Textbox>
</form>

</body>
</html>
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 

Author Comment

by:wilkersons
ID: 11914142
<asp:Textbox id="txtSaleItem" runat="server" OnKeyUp="check(this)"></asp:Textbox>

Gives me an error at OnKeyUp (This is not an attribute for the element)

I tried the following:

 txtSaleItem.Attributes.Add("onKeyUp", "Javascript:document.forms[0].item[txtSaleQty].focus();")

I need to move the focus to
<asp:Textbox id="txtSaleQty" runat="server" ></asp:Textbox>

I get an error as soon as I type the first letter in the txtSaleItem. This means that the onKeyUp does fire but I guess there is some syntax error at the javascript statement

The error is:
document.forms[0].item[....] is null or not an object

Can you suggest something??
Thanks
0
 
LVL 6

Accepted Solution

by:
dgelinas earned 2000 total points
ID: 11914182
try this

txtSaleItem.Attributes.Add("onKeyUp", "Javascript:document.forms[0].txtSaleQty.focus();")
0
 

Author Comment

by:wilkersons
ID: 11914915

I tried
txtSaleItem.Attributes.Add("onKeyUp", "Javascript:if (document.forms[0].txtSaleItem.value.length==7){document.forms[0].txtSaleQty.focus();}")


and it is working !!!

Thanks for your help
0
 
LVL 6

Expert Comment

by:dgelinas
ID: 11914919
No problem :)
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
Are you ready to place your question in front of subject-matter experts for more timely responses? With the release of Priority Question, Premium Members, Team Accounts and Qualified Experts can now identify the emergent level of their issue, signal…
Look below the covers at a subform control , and the form that is inside it. Explore properties and see how easy it is to aggregate, get statistics, and synchronize results for your data. A Microsoft Access subform is used to show relevant calcul…

876 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question