我有一些代码,我需要两个单独的必需的字段验证器为一个控件,在单独的验证组,然后验证由两个单独的按钮.
当按钮被单击时,这种方法很好,但是如果我在文本框中输入了一个值,然后将其删除,那么这两个验证器都会显示.
有没有办法把这个“失去焦点”的验证关闭?我只需要它来验证按钮是否被点击.
编辑
不幸的是,如果我设置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" />
所以,现在直到用户点击“获取电子邮件确认代码”按钮或“注册”按钮之前,才有验证.
如果他们点击“获取电子邮件确认代码”按钮,所有控件除了用户输入电子邮件验证码的文本框之外都会进行验证,我们只看到一个验证器消息.
如果他们点击“注册”按钮,那么所有控件都将被验证,我们只看到一个验证消息.
如果按下任一按钮,用户将返回,添加然后删除一些文本,然后我们只看到一个验证器.在此更改之前,您曾经看到两个消息都说同样的事情.
谢谢你们的帮助