Improve company productivity with a Business Account.Sign Up

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1463
  • Last Modified:

How to run a code-behind sub from the 'blur' event in an input text box

I am developing a form where I need to validate some of the information the user enters. I would like to validate this information AS THE USER moves through the form.

So, i was thinking that I could call SUBS and/or FUNCTIONS using the OnBlur Event on the form fields I need to validate.

I am not sure how to do this. I really would like to be able to call some code-behind routines instead of using javascript. In fact, JS is out of the question for the routines themselves, but I would be willing to use it to call the routines if need be.

Is this even possible?

You will see in the code example below that i am using an asp:image button that fires the validation routine using the onclick event. I would like to apply that same logic the form's input "OnBlur" event.

Thank you in advance for your reply.
<label for="txbCustomerCode">Customer Code: </label>
        <input id="txbCustomerCode" type="text" size="15" name="txbCustomerCode" runat="server" tabindex="3" title="Your Four Season's account number. You can find this number on an invoice, or contact your Sales Representative." />
        <asp:ImageButton CssClass="validation" ImageUrl="Images/Warning-20.png" runat="server" OnClick="subCheckCustomerCode" ID="imgCustomerCodeValidate" />
        <p class="labelinfo">Your Four Season's account number. You can find this number on an invoice, or contact your Sales Representative.</p>
        <br class="clear" />


    Protected Sub subCheckCustomerCode(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgCustomerCodeValidate.Click
        Dim strCustomerCode As String = "123456"
        Dim strCustomerCodeText As String = txbCustomerCode.Value

        If strCustomerCodeText = strCustomerCode Then
            imgCustomerCodeValidate.Attributes("src") = "Images/Checkmark-20.png"
            imgCustomerCodeValidate.Attributes("src") = "Images/Error-20.png"
        End If

    End Sub

Open in new window

  • 3
  • 3
3 Solutions
For textboxes, you can set AutoPostBack="true" and use OnTextChanged Event like shown here:

Did you look into using Validation controls? They might be of help to you depending on what kind of validation you are looking for:
jsvb1977Author Commented:
This might work, thank you. I am heading off for the weekend but will attempt to integrate the validation on Monday.

I will say that I did attempt to use the AutoPostBack as well as the OnTextChanged without success.
I was expecting the code to run as the user 'Tabbed Out' of the asp:textbox.

Does the ontextchanged only fire when the entire form is submitted or can it operate as what I have been referring to as "OnBlur" or "Lost_Focus" event?

I can't post the code yet because I have SQL Connections and Passwords and things like that integrated into the OnTextChanged Sub.

I will strip all of that out and post what I have Monday Morning.

Thank you so much for the links. I think I am now headed in the correct direction.
This is the key part:

-->I will say that I did attempt to use the AutoPostBack as well as the OnTextChanged without success.
I was expecting the code to run as the user 'Tabbed Out' of the asp:textbox.

Yes, it should if the text changes. But if you leave blank, I think it might not.

Here is the basic stub you need after setting autopostback="true"

Protected Sub TextBox1_TextChanged(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles TextBox1.TextChanged
   ' you validation code goes here
End Sub
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

jsvb1977Author Commented:
Yes, it is working now.

Very Cool! Exactly the effect I was looking for. On thing, though...

I lose focus on the form as the page loads again. So, for example, I have this particular textbox with a tabindex of 3. When the input is validated in the code behind and the page loads again, it would be logical for the focus to be on the next textbox with tabindex of 4.

Know what I mean?

I thought MaintainScrollPositionOnPostback="true" would help but it does not. Any thoughts?
will I need to programmatically assign the focus on the next tabindex from the routine in the code behind?

one way is to set the focus of that textbox in the textchanged handler like:

jsvb1977Author Commented:
This Expert went above and beyond. I always get concerned when the first response is links to MSDN articles, but this Expert immediately followed up when I had additional questions and then took the time to answer a follow up question I had not thought of at first.

The solution was thorough and accurate.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now