1

我有一个带有多个文本字段的 .net 表单,其中一些用RequiredFieldValidator 标记。

<asp:TextBox MaxLength="150" Width="300" runat="server" ID="CityTXT"></asp:TextBox>
<asp:RequiredFieldValidator ControlToValidate="CityTXT"
                                    ValidationGroup="PersoanlDetailsVG" runat="server" ErrorMessage="Enter City">*</asp:RequiredFieldValidator>

只有当所有这些字段都有值时,我才需要调用 javascript 函数。

如何触发特定客户端验证的状态?

谢谢

编辑

我试图实现 Page_ClientValidate 但页面没有回发。

这是我的代码

function Validate() {
        var res = Page_ClientValidate("PersoanlDetailsVG");

        if (res == true) {
            //do someting
        }
        return res;
    }

<asp:Button Visible="false"  CssClass="Proceedtopayment" runat="server"  OnClientClick="Validate();return false;" OnClick="ConfirmBooking" CausesValidation="true" ValidationGroup="PersoanlDetailsVG" />

它从不执行 ConfirmBooking()

4

3 回答 3

2

看看来自 ASP.NET的客户端验证 API 。

您可以Page_IsValid在客户端检查是否所有验证器都有效。

一个布尔变量,指示页面当前是否有效。验证脚本始终保持最新状态。

例如:

if(Page_IsValid){
   foo();
}

必要的WebUIValidation.js-file 会自动包含,如果

  • 该页面包含一个或多个验证 Web 控件。
  • “高级”浏览器正在访问该页面。

根据您更新的答案:您的页面不会回发,因为您false在所有情况下都以onClientClick.

如果要在验证成功的情况下在 Button-Click 上回发,则必须返回验证结果:

OnClientClick="return Validate();"

@Brian 的解决方案和我的不同之处在于,它Page_ClientValidate()是一个触发验证(并在内部返回Page_IsValid)而Page_IsValid只返回验证状态的函数。因为验证脚本Page_IsValid始终保持最新,所以调用Page_ClientValidate().

于 2011-07-04T15:58:09.567 回答
0

在这种情况下,最好使用自定义验证器并使客户端验证功能并在提供值的情况下完成您的工作

于 2011-07-04T15:57:36.383 回答
0

当您在您的 aspx 页面中包含 asp .net 验证器时,一系列验证脚本会自动包含在您的客户端呈现页面中。这些脚本包括一个名为“Page_ClientValidate”的函数,当调用该函数时,它会检查那些支持客户端检查的验证器的验证器状态。

您可以使用以下命令检查客户端验证状态;

var validPage = Page_ClientValidate();
于 2011-07-04T15:57:56.940 回答