Asp.net 触发客户端验证的状态

Asp.net 触发客户端验证的状态,asp.net,validation,requiredfieldvalidator,Asp.net,Validation,Requiredfieldvalidator,我有一个带有几个文本字段的.net表单,其中一些字段用RequiredFieldValidator标记 <asp:TextBox MaxLength="150" Width="300" runat="server" ID="CityTXT"></asp:TextBox> <asp:RequiredFieldValidator ControlToValidate="CityTXT" Validat

我有一个带有几个文本字段的.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" />
函数验证(){
var res=Page_ClientValidate(“PersoanlDetailsVG”);
如果(res==true){
//做点什么
}
返回res;
}

它从不执行confirbooking()

在这种情况下,最好使用自定义验证器,并使clientvalidation功能正常运行。如果在aspx页面上包含asp.net验证器时提供了值,则会在客户端呈现的页面上自动包含一系列验证脚本。这些脚本包括一个名为“Page_ClientValidate”的函数,调用该函数时,将检查支持客户端检查的验证器的验证器状态

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

var validPage = Page_ClientValidate();
请查看来自ASP.NET的

您可以在客户端检查
Page\u是否有效
,以检测是否所有验证器都有效

一个布尔变量,表示 页面当前是否有效。 验证脚本保持这一状态 任何时候都要约会

例如:

if(Page_IsValid){
   foo();
}
必要的
WebUIValidation.js
-文件将自动包含在

  • 该页包含一个或多个验证Web控件
  • “uplevel”浏览器正在访问该页面
根据您更新的答案:您的页面不会回发,因为您在所有情况下都在
onClientClick
中返回
false

如果要在验证成功后单击按钮返回,则必须返回验证结果:

OnClientClick="return Validate();"

@Brian的解决方案和我的不同之处在于,
Page\u ClientValidate()
是一个触发验证的函数(并在内部返回
Page\u IsValid
),而
Page\u IsValid
只返回验证的状态。由于验证脚本始终保持
Page\u IsValid
最新,因此调用
Page\u ClientValidate()

可能的重复项是多余的-请参阅我对链接问题的回答-如果字段中从未有值,RequiredFieldValidator将首先返回IsValid。更好的选择是
CustomValidator
以及RequiredFieldValidator。@Zhaph-Ben Duguid感谢您的评论,但我不需要对特定对象进行验证。我需要触发现有数据库的状态validation@StrouMfios:我已经根据您的更新进行了更新。我实施了您的建议,但该页面没有回发。我使用Page_IsValid()方法编辑了我的初始帖子,执行了客户端验证,但从服务器端调用了它。如果我错了,请纠正我。服务器端没有执行客户端验证的方法,因为这将是一个矛盾。您所指的方法是调用的
Page
属性。应该在触发服务器端的所有验证程序之后调用此属性。您应该始终检查服务器端和客户端。但是回到主题:我在我的答案中提供了一个链接,您可以在这里找到所有客户端验证变量和函数。谢谢Tim Schmelter,评论不错。