【问题标题】:Possible to fire asp.net validation from jQuery?可以从 jQuery 触发 asp.net 验证吗?
【发布时间】:2011-02-05 09:00:45
【问题描述】:

我有一个表格,上面有几个文本框。我只想接受浮点数,但用户很可能会输入美元符号。我正在使用以下代码删除美元符号并验证内容:

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" />

我的问题是,当有人在文本框“tb”中输入美元符号并更改焦点时,首先进行验证,然后 jQuery 删除美元符号。是否可以让 jQuery 先运行或在 jQuery 执行后强制验证再次运行?

【问题讨论】:

标签: asp.net jquery validation


【解决方案1】:

所有 ASP.Net 验证器都有一个客户端 API,您可以使用该 API。你可以看到一些documentation and discussion on it here

具体来说,您可能想要做的是调用 javascript 函数

ValidatorValidate(document.getElementById("<%= myValidator.ClientID %>"));

让验证器重新运行它的客户端验证例程并更新它的显示。

【讨论】:

    【解决方案2】:

    为什么不使用更改事件而不是使用 KeyPress 事件并在那里处理 $ 符号。通过这种方式,用户将无法输入 $。

    HTH

    【讨论】:

    • 不错的主意。我唯一担心的是,用户在输入 $ 时可能会感到困惑,但什么也没有出现。至少如果他们输入它并且当他们点击时它消失了,他们更有可能认为网页正在执行它而不是他们的键盘或其他什么问题。
    【解决方案3】:

    尝试调用 jquery 的.change() 方法。

    像这样:
    $("#Symbol").val(""); $("#Symbol").change();

    有时只调用.val() 是不够的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-12
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多