Tuesday, November 5, 2013

JavaScript to validate Price input into a TextBox

Guys, first time in my life I am writing JavaScript for one of my project. I need a client side validation for an input into asp:TextBox.
I wrote a JavaScript function that would, actually, take whole element as object and use a regex to match the input with a pattern.
I learned that we don’t need to create an object of a RegEx() as we do in C#.
A “var” variable has “match” function that will use regex pattern to match the input.
Below is the javascript function that I wrote to validate my input.

<script language="javascript">
    function validatePrice(textBoxId) {
        var textVal = textBoxId.value;
        var regex = /^(\$|)([1-9]\d{0,2}(\,\d{3})*|([1-9]\d*))(\.\d{2})?$/;
        var passed = textVal.match(regex);
        if (passed == null) {
            alert("Enter price only. For example: 523.36 or $523.36");
            textBoxId.Value = "";
        }
    }
</script>


I wanted to fire the validation after I lost a focus on text box. To achieve this I did Google and went through all Form, Window etc type of event described at http://www.w3schools.com/tags/ref_eventattributes.asp . I used “onblur” event which is as same as OnLostFocus() in most of the WinForm controls.

<asp:TextBox ID="TextBox19" runat="server" Visible="False" Width="183px"
      onblur="javascript:return validatePrice(this);"></asp:TextBox>


This is my first javascript function. There may be best chance to improvise it. Please post your comments with changes.
Thanks & Enjoy!