2010-02-09 108 views
2

这是一个奇怪的情况:我有一个表单,其上有多个数据输入控件。通过选中复选框可以显示/隐藏这些控件的子集。所有控件及其关联的验证器都属于名为“高级”的ValidationGroup,就像asp:Button Submit按钮和ValidationSummary一样。改变ASP.Net验证控件忽略JavaScript隐藏字段

事情是,我不希望字段的子集被验证,如果他们是隐藏的;只有在它们可见时才需要它们。

这样做的一个非常不愉快的方法是让另一个asp:按钮显示/隐藏以及额外的字段,并且正常的提交按钮获取显示/隐藏,但添加另外几个子集领域和它有点混乱...

任何想法?倒是十分想坚持我的尝试和值得信赖的验证控件...

谢谢

迈克K.

回答

0

this question。当他们验证的控件被隐藏时,您应该禁用验证器。这两个答案显示了如何禁用客户端和服务器端的验证器。

1

你能设置它,这样,当你设置字段“隐藏”你还禁用验证?

protected void chkBoxChecked(object sender, Eventargs e) { 
    validationControl.Enabled = false; 
} 

当然,您需要确保我们的复选框的AutoPostBack属性设置为True;

如果你想避免使用回传/闪存,当然你也可能包住整个事情在一个UpdatePanel,或者你可以做这一切在javascript:

Using Javascript to disable validators

+0

这些都是用JavaScript来完成的(而不是烟雾和镜子),这是为了尽量减少PostBack。 – 2010-02-09 16:16:00

+1

尝试在JavaScript然后:http://geekswithblogs.net/jonasb/archive/2006/08/11/87708.aspx – 2010-02-09 16:36:24

+0

我当然会杰克:-) – 2010-02-10 09:57:52