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

时间:2012-02-15 13:30:36

标签: c# asp.net validation requiredfieldvalidator

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

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

5 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:2)

我猜这是因为默认情况下RequiredFieldValidator通过将visibility设置为hidden来隐藏自己。

要将其更改为display而不是none(不会在页面上留下空白),请删除Visible="False"属性并将此属性添加到控件中:< / p>

Display="Dynamic"

答案 2 :(得分:1)

尝试这样做:

$("#myField").hide();
在jQuery中

或者:

style="display:none"

在输入标记内。

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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