当visible = false时,asp.net requiredfieldvalidator不工作

我在我的asp.net网站上有一些requiredFileldvalidators,我希望在需要之前设置隐形。 但是,当我将它们设置为visible = false时,它们不会触发。 如果它们设置为visible = true,它们就可以工作。

这是此控件的正确行为还是错误的。 我希望它们在可见时由于样式问题而不可见。

在ASP.NET中设置Visible="false"将导致元素无法呈现到页面。 因此,它基本上不存在于客户端。 默认情况下它们应该是不可见的,并且只有在不满足要求标准时才显示(或者通过使用IsValid="false"强制它们)。

您可以使用Display属性来帮助简化布局模式 – 但我感觉这与您想要做的事情并不完全相关。

我猜它是因为默认情况下, RequiredFieldValidator通过将visibility设置为hiddenhidden

要让它将display更改为none (不会在页面上留下空白间隙),请删除Visible="False"属性并将此属性添加到控件:

 Display="Dynamic" 

尝试这样做:

 $("#myField").hide(); 

在jQuery中,或者:

 style="display:none" 

在输入标记内。

然后将会渲染,但只是不可见。

asp.net控件的Visible属性与样式无关。 使用css。 可见控制是否显示/呈现控件。 也许你在寻找Display =“Dynamic”?

改为使用validation器的“启用”属性,并将“显示”属性设置为“动态”,因此渲染时不会占用空间。

这应该是你需要做的事情。