asp.net requiredfieldvalidator dont work when visible=false

二次信任 提交于 2019-12-12 14:44:23

问题


I have some requiredFileldvalidators in my asp.net site that i want to set invisible until needed. But when i set them to visible=false they do not fire. They do work if they are set visible=true.

Is this the correct behavior of this control or is this wrong. I want them invisible due to styling issues when visible.


回答1:


Setting Visible="false" in ASP.NET will cause an element to not be rendered out to the page. So, it essentially doesn't exist on the client side. They should be invisible by default, and will only be shown if the criteria of requirements is not met (or they are otherwise forced by use of IsValid="false").

You can play with the Display property to help facilitate layout modes - but I have a feeling this is not entirely related to what you desire to do.




回答2:


I'm guessing it's because by default the RequiredFieldValidator hides itself by setting the visibility to hidden.

To get it to change display to none instead (which won't leave an empty gap on the page) remove your Visible="False" attribute and add this attribute to the control:

Display="Dynamic"



回答3:


Try to do this:

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

in jQuery, or:

style="display:none"

within the input tag.

Then in will be rendered but just not visible.




回答4:


The Visible property of a asp.net control has nothing to do with styling. Use css for that. Visible controls whether the control is displayed/rendered or not. Maybe your looking for Display="Dynamic"?




回答5:


use validator's "Enabled" property instead, and also set Display property to Dynamic, so it does not take up space while rendering.

That should pretty much do what you need to do.



来源:https://stackoverflow.com/questions/9294326/asp-net-requiredfieldvalidator-dont-work-when-visible-false

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!