如何关闭ASP.NET必需的字段验证器“丢失焦点”行为
|
我有一些代码,我需要两个单独的必需的字段验证器为一个控件,在单独的验证组,然后验证由两个单独的按钮. 当按钮被单击时,这种方法很好,但是如果我在文本框中输入了一个值,然后将其删除,那么这两个验证器都会显示. 有没有办法把这个“失去焦点”的验证关闭?我只需要它来验证按钮是否被点击. 编辑 不幸的是,如果我设置EnableClientScript = false,那么我没有任何客户端通知.我想要的是动态错误消息显示(有效地在按钮的OnClientClick事件中),但不是文本框的“丢失焦点”. 有没有办法可以禁用或“解除”lostfocus客户端事件? 编辑 组合dDejan的答案和womp的answeer here完美地排序问题. 我的最终代码看起来像这样(对于有类似情况的其他人)… JavaScript的… <script type="text/javascript">
$(document).ready(function() {
$('body').fadeIn(500);
//Turn off all validation = its switched on dynamically
$.each(Page_Validators,function(index,validator) {
ValidatorEnable(validator,false);
});
});
function ToggleValidators(GroupName) {
$.each(Page_Validators,validator) {
if (validator.validationGroup == GroupName) {
ValidatorEnable(validator,true);
} else {
ValidatorEnable(validator,false);
}
});
}
</script>
ASPX控件示例… <telerik:RadTextBox Width="196px" ID="txtFirstName" runat="server" MaxLength="50" Skin="Black"></telerik:RadTextBox> <asp:RequiredFieldValidator ID="valFirstName" CssClass="Validator" runat="server" EnableClientScript="true" Display="Dynamic" ErrorMessage="You must enter your first name." ControlToValidate="txtFirstName" ValidationGroup="NeededForEmail"></asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" CssClass="Validator" runat="server" EnableClientScript="true" Display="Dynamic" ErrorMessage="You must enter your first name." ControlToValidate="txtFirstName" ValidationGroup="NeededForSubmit"></asp:RequiredFieldValidator> ASPX按钮代码… <asp:Button ID="btnGetConfCode" runat="server" Text="Get Confirmation Code" OnClientClick="ToggleValidators('NeededForEmail')" OnClick="btnGetConfCode_Click" Width="100%" ValidationGroup="NeededForEmail"/>
<asp:Button ID="btnRegisterUser" runat="server" Text="Register" OnClientClick="ToggleValidators('NeededForSubmit')" OnClick="btnRegisterUser_Click" Width="100px" ValidationGroup="NeededForSubmit" />
所以,现在直到用户点击“获取电子邮件确认代码”按钮或“注册”按钮之前,才有验证. 如果他们点击“获取电子邮件确认代码”按钮,所有控件除了用户输入电子邮件验证码的文本框之外都会进行验证,我们只看到一个验证器消息. 如果他们点击“注册”按钮,那么所有控件都将被验证,我们只看到一个验证消息. 如果按下任一按钮,用户将返回,添加然后删除一些文本,然后我们只看到一个验证器.在此更改之前,您曾经看到两个消息都说同样的事情. 谢谢你们的帮助 解决方法您可以使用ValidatorEnable函数设置验证器是否为“活动”客户端代码.基本上就是这样var validator = document.getElementById('<%=Validator1.ClientID%>');
ValidatorEnable(validator,state); //where state is boolean
您还可以使用ValidatorValidate(验证器)功能触发验证器来验证某些事件(例如单击按钮). 我不知道哪个会更好地为您工作(启用/禁用验证器或自定义触发验证),但我建议这篇文章将指导您正确的方向 ASP.NET Validation in Depth (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- jwt – ASP.NET 5 OAuthBearerAuthentication:以下认证方案
- asp.net-mvc – ASP.NET MVC母版页
- .net – 实现UserManager以使用自定义类和存储过程
- asp.net – 很好的复杂linq到sql示例?
- asp.net-mvc-2 – 使用或不使用AutoMapper的“合并”模型和
- asp.net-mvc – 用于MVC文件上传的Bootstrap进度条
- asp.net-mvc – 如何为ASP.NET MVC区域捆绑资源?
- asp.net-mvc-3 – EF 4.1 – 模型关系
- asp.net-mvc-4 – MVC4不要在重定向上使用主布局
- asp.net-mvc-3 – SignalR依赖注入问题
- F#和ASP.NET
- 在asp.net mvc 3中实现FilterAttribute,IActionF
- asp.net-mvc – 如何将Bootstrap下拉式样应用于A
- asp.net – 发布配置文件不会发布所需的构建配置
- Asp.net实现MVC处理文件的上传下载功能实例教程
- asp.net – 在IIS中将WebAPI添加为子/嵌套应用程
- asp.net-mvc – 在Umbraco 6.1.1 MVC 4中,如何使
- asp.net-mvc-4 – 如何将自定义css / js添加到MV
- asp.net-mvc – 适用于asp.net MVC和razor视图的
- asp.net – Chrome在成功的文件下载(200状态)上显
