asp.net requiredfieldvalidator не работает, когда видимо = false - PullRequest
3 голосов
/ 15 февраля 2012

У меня есть несколько requiredFileldvalidators на моем сайте asp.net, которые я хочу установить невидимыми до тех пор, пока они не понадобятся.Но когда я устанавливаю их в visible = false, они не срабатывают.Они работают, если для них установлено значение visible = true.

Это правильное поведение этого элемента управления или неправильное.Я хочу, чтобы они были невидимыми из-за проблем со стилем при их отображении.

Ответы [ 5 ]

10 голосов
/ 15 февраля 2012

Установка Visible="false" в ASP.NET приведет к выводу элемента на , а не на страницу. Так что, по сути, он не существует на стороне клиента. По умолчанию они должны быть невидимыми, и будут отображаться только в том случае, если критерии требований не выполнены (или они принудительно вызваны использованием IsValid="false").

Вы можете поиграть со свойством Display, чтобы упростить режимы макета - но я чувствую, что это не совсем связано с тем, что вы хотите сделать.

2 голосов
/ 15 февраля 2012

Я предполагаю, что это потому, что по умолчанию RequiredFieldValidator скрывается, устанавливая visibility на hidden.

Чтобы заставить его изменить вместо display на none (который выигралне оставляйте пустой пробел на странице) удалите атрибут Visible="False" и добавьте этот атрибут в элемент управления:

Display="Dynamic"
1 голос
/ 15 февраля 2012

Попробуйте сделать это:

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

в jQuery, или:

style="display:none"

внутри тега ввода.

Тогда будет отображено, но просто не видно.

0 голосов
/ 11 марта 2016

вместо этого используйте свойство «Enabled» для валидатора, а также установите для свойства Display значение Dynamic, чтобы оно не занимало пространство при рендеринге.

Это должно в значительной степени делать то, что вам нужно.

0 голосов
/ 15 февраля 2012

Свойство Visible элемента управления asp.net не имеет ничего общего со стилем.Используйте CSS для этого.Видимые элементы управления, независимо от того, отображается элемент управления / отображается или нет.Может быть, вы ищете Display = "Dynamic"?

...