如何关闭 ASP.NET 必填字段验证器“失去焦点”行为

2024-04-03

我有一些代码,其中一个控件需要两个单独的必填字段验证器,两个验证器都位于单独的验证组中,然后由两个单独的按钮进行验证。

当单击按钮时,这种方法效果很好,但如果我在文本框中输入一个值然后将其删除,两个验证器都会显示。

有没有办法关闭这种“失去焦点”验证?我只需要它来验证单击按钮的时间。

EDIT

不幸的是,如果我设置 Enable ClientScript=false 那么我就没有any客户通知。我想要的是显示动态错误消息(有效地在按钮的 OnClientClick 事件中),而不是文本框的“失去焦点”。

有什么方法可以禁用或“取消挂钩”丢失焦点客户端事件吗?

EDIT

dejan 的答案和 whomp 的答案的组合here https://stackoverflow.com/questions/2158052/enable-disable-asp-net-validator-controls-within-a-specific-validationgroup-wit完美解决了问题。

我的最终代码如下所示(对于有类似情况的其他人)...

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, function(index, 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(validator)功能。

我不确定哪一个更适合您(启用/禁用验证器或验证的自定义触发),但我建议这篇文章将指导您正确的方向

ASP.NET 深度验证 http://msdn.microsoft.com/en-us/library/aa479045.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何关闭 ASP.NET 必填字段验证器“失去焦点”行为 的相关文章

  • 名称在当前上下文中不存在

    所以 我正在我的笔记本电脑和台式机之间完成这个项目 该项目在笔记本电脑上运行 但现在将更新的源代码复制到桌面上后 我的项目中有超过 500 个错误 所有这些错误都是 该名称在当前上下文中不存在 这是一个例子 职位 aspx
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • PostgreSQL 错误 42501:架构权限被拒绝

    我正在 ASP NET 中构建一个用户注册系统 使用 PostgreSQL 数据库来维护用户信息 作为注册过程的一部分 用户会收到一条确认消息 他们必须单击其中的链接来验证其电子邮件地址 然后 他们将进入一个可以创建密码的页面 一旦用户提供
  • 页面中某些超链接控件上的本地化资源未发生变化

    上面是正在开发中的网站的屏幕截图 我们有一个 DropdownList 控件 并在其 SelectedIndexChanged 上进行回发 然后我们更改站点区域性 然后加载相应的资源文件 DropDownList ASP NET 代码
  • 保护 ASP.NET 网站中 Elmah RSS 源的安全

    我遵循了这个问题的答案在 ASP NET 网站中保护 Elmah 的安全 https stackoverflow com questions 1245364 securing elmah in asp net website限制对 elma
  • 设置国际货币格式

    我有一个 asp net 应用程序 我们正在 全球化 过程中 我将 currentculture 和 currentUICultre 设置为适当的值 并且货币按预期使用货币格式显示 即 FormatCurrency nPrice 产生 en
  • 使用信用卡号的字符串格式

    我正在尝试将信用卡号显示为类似 的字符串 I tried txtbox Text string Format 0 ccNumber 但它不起作用 有任何想法吗 String Format 0 0000 0000 0000 0000 numb
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • 将 MVC 站点部署到 IIS 会导致找不到默认共享部分视图

    我有一个可以在本地 IIS 上完美运行的网站 我的所有页面都使用默认的共享部分视图 这称为预期 Layout cshtml 该视图放置在我的共享文件夹中 这可以在这里看到 正如我所期望的那样 这非常有效 不过 我现在发布了我的网站 然后 我
  • 尝试使用 VS 2012 打开我的 asp.net 4.5 MVC Web 应用程序时出错。Asp.net 尚未在服务器上注册

    我有一个Windows Server 2012 R2 Visual Studio 专业版 2012 现在我用来开发 ASP NET 4 5 MVC 4 Web 应用程序 没有任何问题 但现在当我尝试打开该项目时 我会收到此错误 如果我单击
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • Outlook 加载项,无法读取未定义的属性“BeginRequestEventArgs”

    我使用 Visual Studio 开发了 Outlook 插件 我的插件有一个按钮 用于填充会议邀请正文中的详细信息并添加所需的与会者 这在 99 的情况下都有效 但是 时不时地它会给我下面的 JavaScript 错误 Uncaught
  • ListItem 附加自定义值

    我在asp net中使用dropdownlist 它有代表下拉列表项目的ListItem集合 每个ListItem只有两个字段来保存数据 Value和Text字段 但这些还不够 我想保存更多数据对于每个项目 假设附加字段中有 Text1 和
  • 我可以在 IIS 中禁用大量更改通知吗

    我偶尔会收到以下导致应用程序池被回收的事件 shutDownMessage CONFIG change HostingEnvironment initiated shutdown Overwhelming Change Notificati
  • 对一组复选框使用 HTML5“必需”属性?

    使用支持 HTML5 的较新浏览器 例如 FireFox 4 时 并且表单字段具有属性required required 并且表单字段为空 空白 然后点击提交按钮 浏览器检测到 必填 字段为空 并且不提交表单 相反 浏览器会显示一条提示 要
  • 从应用程序内部监视 ASP.NET 应用程序内存

    我正在寻找一种方法让应用程序本身监视它正在使用的内存量 这样我就可以每小时左右将其记录在日志文件中 并密切关注应用程序的使用情况 它全部托管 因此我们可以对系统进行更改以查看发生了什么 因此解决方案必须来自应用程序代码内 我们将来可能会使用
  • 检查缓存后 System.Web.HttpContext.Current 自身为空

    今天我遇到了一个奇怪的问题 这对我来说毫无意义 总结如下 在方法内部 我检查缓存的项目 如下所示 private async Task
  • 对齐 GridView 中的行值

    我需要在 asp net 3 5 中右对齐 gridview 列中的值 我怎样才能做到这一点
  • ASP.NET C# 中的自定义控件

    我创建了一个简单的自定义控件 它仅继承自Literal控件 并且还没有任何扩展 代码为空 命名空间 CustomControls 类名 文字 System Web UI WebControls Literal 接下来我要做的就是在aspx页
  • 当存在打开的 ASP.NET 4.5 Websocket 时,IIS 应用程序池无法回收

    我遇到了一个问题 可以通过以下方式复制 您需要 IIS8 因此必须在 Windows 8 或 Windows Server 2012 R2 上 在 IIS 管理器中创建一个新网站 例如在端口 8881 上的 TestWs 指向一个新文件夹

随机推荐

  • ListView 项目布局 targetSdkVersion="17" 和 targetSdkVersion="18" 之间不同

    我刚刚将 Android SDK 更新到版本 18 并修改了我正在处理的项目以使用它而不是版本 17 事实证明 我的 ListView 现在看起来有很大不同 然而 只需在清单文件中将 targetSdkVersion 从 18 切换到 17
  • https 客户端使用客户端证书和密码通过 cpp-netlib 获取

    我正在尝试使用 cppnetlib 甚至 boost asio 库来连接以执行简单的 url 获取并将结果页面拉下来 我已经让它可以与http一起使用 甚至可以使用https使用cppnetlib 但我需要提供一个需要密码的客户端证书 不幸
  • Git Bash 是否通过 ssh 密钥确定身份?

    已经第三天了 我仍然无法解决以下问题 我最初在 2 年前创建了一个 GitHub 帐户 我相信我为此帐户生成了 SSH 密钥 我相信我已将 ssh 密钥加载到我的 ssh agent 程序中 然后将公钥放在我的 GitHub 帐户上 现在我
  • 当 Html 输入范围“step”不是范围“max”值的倍数时

    我遇到的情况是 我的范围滑块的步长不是最大值的倍数 因此滑块值仅变为 90 因为下一步将大于 100 片段
  • Windows 上的 PHP realpath 案例问题

    我的 Windows 服务器上有一个符号链接 其制作方式如下 F gt mkdir link target F gt mklink D link f link target 注意小写f 在符号链接目标中 在 PHP 中我运行这个 dir r
  • PHP SOAP 请求全部小写

    我创建了一个 Web 服务并使用 SoapUI 来验证它是否正常工作 然而 PHP 客户端在尝试访问它时遇到致命错误 我设置了一个 try catch 以便可以查看输出 SOAP 请求并执行var dump 当我查看请求并var dump
  • Xcode 12.4 React Native 构建在 IOS 中失败显示所有消息命令 PhaseScriptExecution 失败并出现非零退出代码

    我是 React Native 的新手 我想在 React Native 初始化后在 IOS 中运行 React Native 应用程序 应用程序未在 IOS 中运行显示一些错误 显示所有消息 bash Native social logi
  • C# - 初始化器内类字段的闭包?

    考虑以下代码 using System namespace ConsoleApplication2 class Program static void Main string args var square new Square 4 Con
  • 怎么转?如何将多行转换为一行多列?

    我有两张表想要合并 第一张桌子是客户的 另一张桌子是产品的 目前我有 22 个产品 但我想要一个灵活的数据库设计 因此产品数据库中不是有 22 列 而是每个客户的每个产品有 1 行 因此如果我总体添加或删除 1 个产品 我不会必须更改数据库
  • PHP:使用方法作为回调

    我试图使用array walk recursive对于某些事情 并想使用类的方法之一作为回调 所以尝试 array walk recursive TAINTED this gt encode 及其变体都失败了 我最终决定 array wal
  • 如何在 main() 之前调试程序崩溃

    我在 Windows 8 1 上使用 QtCreator 和 Visual Studio 2015 套件来构建我在 Linux 上开发和测试的程序 在 Linux 上它工作正常 但在 Windows 上它立即崩溃 我不知道要寻找什么 除了我
  • .htaccess 中单个 RewriteCond 的多个 RewriteRules

    我的 htaccess 中有以下命令 RewriteCond HTTP HOST www a z0 9 example com NC RewriteRule a z 2 1 2 L RewriteRule 0 9 a z 2 1 3 2 L
  • pieCSS3:不在本地四舍五入

    我正在尝试使用饼图获得圆角 ul li webkit border radius 8px 8px 0 0 moz border radius 8px 8px 0 0 border radius 8px 8px 0 0 color FFFFF
  • 从 API 控制器调用 POST 方法

    我有一个名为 MyFIlesController 的 API 控制器 在其中 我有这个方法 POST api myfiles public void Post FromBody string value 以下是我用 Fiddler 的调用方
  • 有没有java图像库?

    我是 java 图像处理新手 我的任务是重新调整网站图像的大小和比例 有没有一个简单的库可以完成这项任务 一个我必须下载 jar 的库 添加到我的项目中 我不喜欢被迫在 Windows 上安装编解码器和文件 我需要该库仅支持基本功能 Lib
  • Visual Studio 在断点处冻结

    自一周前以来 我在 VS2010 中看到了一个非常烦人的行为 当我正在调试一个项目时 调试器在断点处停止 Windows 冻结了近十秒 我说 Windows死机 是因为这段时间鼠标和键盘没用 该问题仅在我调试特定项目时发生 并且我在两台不同
  • 使用 Java 在 Mac 上以编程方式发送电子邮件(通过 Mac 邮件客户端)

    我对这个问题做了很多研究 但似乎无法为我的问题提出可靠的解决方案 我正在开发一个 Java 客户端应用程序 它 应该 允许用户从 Mac 地址簿中导入联系人 方法是以列表格式获取联系人 并允许用户选择一个子集 全部 然后单击一个按钮 将 邀
  • Java中的Goto语句[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我执行了下面的代码Eclipse http en wikipedia org wiki Eclipse 28software 29 但是GO
  • 人眼注视检测:识别用户正在看板上的位置[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在开发一个项目 上面有板和相机 目标是识别正在看黑板的学生 并确定他们视线的位置 在黑板上 目前 我计划从以下几个方面来应对挑
  • 如何关闭 ASP.NET 必填字段验证器“失去焦点”行为

    我有一些代码 其中一个控件需要两个单独的必填字段验证器 两个验证器都位于单独的验证组中 然后由两个单独的按钮进行验证 当单击按钮时 这种方法效果很好 但如果我在文本框中输入一个值然后将其删除 两个验证器都会显示 有没有办法关闭这种 失去焦点