Asp.net 触发客户端验证的状态
我有一个带有几个文本字段的.net表单,其中一些字段用RequiredFieldValidator标记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
<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,评论不错。