Validator.SetFocusOnError在没有回发的情况下工作吗?

时间:2010-03-29 22:45:35

标签: asp.net javascript

我有一个带有RegexValidator的ASP.net页面。当用户键入超出范围的值并从控件导航(选项卡)时,RegexValidator会成功显示我的验证错误文本。此时,它没有将焦点设置为该控件,即使我有SetFocusOnError =“true”。

单击该页面上的按钮时,似乎设置了焦点。

一旦javascript检测到问题,是否应该设置焦点?

2 个答案:

答案 0 :(得分:0)

您的RegEx验证器是否在命名容器内?如果是这样,你需要做一点点黑客攻击。

请阅读this以获取一些帮助和此实例。

答案 1 :(得分:0)

当您尝试提交表单时,焦点将返回到控件。默认情况下启用EnableClientScript,它执行客户端验证,因此如果验证失败并且浏览器能够执行客户端验证,则不会发回回。

来自MSDN

  

使用EnableClientScript属性   指定是否客户端   验证已启用。

     

验证控件始终执行   在服务器上验证。他们也   有完整的客户端   允许的实现   DHTML支持的浏览器(例如   Microsoft Internet Explorer 4.0和   稍后)执行验证   客户。客户端验证   通过增强验证过程   在发送之前检查用户输入   到服务器。这允许错误   在客户端之前被检测到   提交表格,避免回合   必要的信息之旅   服务器端验证。

     

默认情况下,此值设置为true,   这使客户端验证成为可能   如果浏览器支持它。

如果您希望在用户选中时立即从验证控件中获得反馈,您可以设置其ErrorMessage属性并将其Display属性设置为Dynamic或{{1 }}