Кто-нибудь знает, как отключить валидатор ASP.NET с помощью JavaScript? Я использую javascript style.display = 'none' для отключения частей веб-страницы. Однако эти отключенные части имеют валидаторы asp.net, которые все еще увольняются, и мне нужно отключить их, не совершая кругосветное путешествие на сервер. Спасибо.
Отключить валидаторы ASP.NET с помощью JavaScript
Ответ 1
Используйте этот фрагмент:
function doSomething()
{
var myVal = document.getElementById('myValidatorClientID');
ValidatorEnable(myVal, false);
}
Ответ 2
Кроме того, вместо простого сокрытия элементов вы можете установить для свойства Visible значение false...
whateverItem.Visible = false;
Это делает этот элемент просто не отображаемым на странице, что, по моему мнению, отключает проверку. Кто-то, пожалуйста, поправьте меня, если я ошибаюсь.
Ответ 3
Это старый вопрос, но удивил следующий ответ, который он не дал. Я реализовал его с использованием комментариев выше и работает безупречно
# enable validation
document.getElementById('<%=mytextbox.ClientID%>').enabled = true
#disable validation
document.getElementById('<%=mytextbox.ClientID%>').enabled = disable
Эта реализация может быть кому-то сложной, потому что помните, есть ли ошибка в javascript, код выйдет, но вы не получите никаких ошибок. Некоторые полезные моменты
-
Убедитесь, что вы можете установить точку останова и выполнить один шаг через код. Если не перезапустить браузер.
-
Установите точку останова в начале функции, в которую вы помещаете этот код. Шаг через код, если есть ошибка, код выйдет, и вы не сможете войти в код.
-
В Firefox Firebug вы можете ввести весь оператор javascript на вкладке консоли, чтобы узнать, что возвращает ваш оператор. Самое главное, что вы хотите проверить не нулевые значения элементов управления.
Ответ 4
Вот подробная статья о том, как управлять ASP.NET-валидаторами из JavaScript:
Как управлять средствами проверки валидатора ASP.NET Проверка на стороне клиента из JavaScript
Ответ 5
Per Glenn G выше, я бы использовал
myVal.enabled = false;
чтобы отключить валидатор вместо
ValidatorEnable(myVal, false);
Вот что я испытал: оба фрагмента отлично работали на моем сервере 2003 с .net framework 2.0. Однако на сервере 2008 R2 с .net framework 4.0 (я не уверен, что вызывает проблему), я получал непреднамеренное поведение с помощью "ValidatorEnable". На моей странице есть вкладки (usercontrols), и когда я оставил вкладку, которая вызывала "ValidatorEnable", это временно отключило валидаторы на следующей вкладке (даже если код не вызывался для их отключения) до следующей обратной передачи.
Ответ 6
Лучший способ сделать это,
function doSomething()
{
var objvalidator = document.getElementById('myValidatorClientID');
objvalidator.enabled = false;
objvalidator.isvalid = true;
ValidatorUpdateDisplay(objvalidator);
}