我有一个带有RegexValidator的ASP.net页面。当用户键入超出范围的值并从控件导航(选项卡)时,RegexValidator会成功显示我的验证错误文本。此时,它没有将焦点设置为该控件,即使我有SetFocusOnError =“true”。
单击该页面上的按钮时,似乎设置了焦点。
一旦javascript检测到问题,是否应该设置焦点?
答案 0 :(得分:0)
您的RegEx验证器是否在命名容器内?如果是这样,你需要做一点点黑客攻击。
请阅读this以获取一些帮助和此实例。
答案 1 :(得分:0)
当您尝试提交表单时,焦点将返回到控件。默认情况下启用EnableClientScript,它执行客户端验证,因此如果验证失败并且浏览器能够执行客户端验证,则不会发回回。
来自MSDN:
使用EnableClientScript属性 指定是否客户端 验证已启用。
验证控件始终执行 在服务器上验证。他们也 有完整的客户端 允许的实现 DHTML支持的浏览器(例如 Microsoft Internet Explorer 4.0和 稍后)执行验证 客户。客户端验证 通过增强验证过程 在发送之前检查用户输入 到服务器。这允许错误 在客户端之前被检测到 提交表格,避免回合 必要的信息之旅 服务器端验证。
默认情况下,此值设置为true, 这使客户端验证成为可能 如果浏览器支持它。
如果您希望在用户选中时立即从验证控件中获得反馈,您可以设置其ErrorMessage
属性并将其Display
属性设置为Dynamic
或{{1 }}