I have a form with several text boxes on it. I only want to accept floats, but it is likely that users will enter a dollar sign. I’m using the following code to remove dollar signs and validate the content:
jQuery:
$("#<%= tb.ClientID %>").change(function() {
var ctrl = $("#<%= tb.ClientID %>");
ctrl.val(ctrl.val().replace('$',''))
});
asp.net validation:
<asp:CompareValidator ID="CompareValidator4" runat="server" Type="Double" ControlToValidate="tb" Operator="DataTypeCheck" ValidationGroup="vld_Page" ErrorMessage="Some error" />
My problem is that when someone enters a dollar sign in the TextBox “tb” and changes focus the validation happens first and THEN the jQuery removes the dollar sign. Is it possible to have the jQuery run first or to force the validation to run again after the jQuery executes?
All the ASP.Net validators have a client-side API that you can hook into. You can see some documentation and discussion on it here.
Specifically what you probably want to do is call the javascript function
to make the validator re-run it’s client-side validation routine and update its display.