我的表单上有几个文本框。我只想接受花车,但很可能用户会输入一个美元符号。我正在使用以下代码删除美元符号并验证内容:
jQuery的:
$("#<%= tb.ClientID %>").change(function() {
var ctrl = $("#<%= tb.ClientID %>");
ctrl.val(ctrl.val().replace('$',''))
});
asp.net验证:
<asp:CompareValidator ID="CompareValidator4" runat="server" Type="Double" ControlToValidate="tb" Operator="DataTypeCheck" ValidationGroup="vld_Page" ErrorMessage="Some error" />
我的问题是,当有人在TextBox“tb”中输入一个美元符号并更改焦点时,验证首先发生,然后jQuery删除美元符号。是否有可能首先运行jQuery或强制验证在jQuery执行后再次运行?
答案 0 :(得分:6)
所有ASP.Net验证器都有一个可以挂钩的客户端API。您可以看到一些documentation and discussion on it here。
具体你想要做的是调用javascript函数
ValidatorValidate(document.getElementById("<%= myValidator.ClientID %>"));
使验证器重新运行它的客户端验证例程并更新其显示。
答案 1 :(得分:0)
为什么不使用KeyPress事件并在那里处理$符号,而不是使用更改事件。通过这种方式,用户将无法输入$。
HTH
答案 2 :(得分:0)
尝试调用jquery的.change()
方法。
像这样:
$("#Symbol").val("");
$("#Symbol").change();
有时只调用.val()
是不够的。