我有一个asp.net表单,其中包含一些可以展开/折叠的部分,通常会折叠。现在,表单上的大多数控件都附带了RequiredFieldValidator或其他一些验证器。如果用户尝试提交未填写必填字段的表单,则m未提交,但由于大多数部分通常已折叠,因此用户未看到验证文本(如文本框右侧的感叹号)提示修复错误。 我想要做的是对于验证失败的控件,扩展他们的父容器,以便用户可以看到那些失败的控件,但为此我需要连接一些客户端sode javascript,当客户端验证失败时woudl执行。我没有做任何事情 - 验证者自然不会将这些“验证事件”暴露给联系人。当然,我可以创建我的自定义验证器,但这意味着完全重写所有现有的asp.net验证器(并重复功能),这听起来是一大块工作。
有什么想法吗?
提前谢谢! 安德烈
答案 0 :(得分:1)
以下是我解决类似问题的方法。对于添加到手风琴的每个验证器,我将验证器id与它所包含的折叠面板一起存储在数组中。然后我将此列表传递给客户端。我还通过调用Page.ClientScript.RegisterOnSubmitStatement来挂钩OnSubmit事件。在onSubmit期间执行的javascript函数首先检查页面是否有效,如果是,那么它只是退出,如果没有则它循环通过验证器列表寻找无效的,当它找到一个时,它会扩展与该验证器相关的部分。