Отключить валидаторы ASP.NET с помощью JavaScript - PullRequest
31 голосов
/ 30 декабря 2008

Кто-нибудь знает, как отключить валидатор ASP.NET с помощью JavaScript? Я использую javascript style.display = 'none', чтобы отключить части веб-страницы. Однако у этих отключенных частей есть валидаторы asp.net, которые все еще работают, и мне нужно отключить их, не совершая двусторонней проверки на сервере. Спасибо.

Ответы [ 6 ]

52 голосов
/ 30 декабря 2008

Использовать этот фрагмент:

function doSomething()
{
  var myVal = document.getElementById('myValidatorClientID');
  ValidatorEnable(myVal, false); 
}
1 голос
/ 06 июня 2014

За комментарий Гленна G выше я бы использовал

myVal.enabled = false; 

для отключения валидатора вместо

ValidatorEnable(myVal, false); 

Вот что я испытал: оба фрагмента отлично работали на моем сервере 2003 с .net framework 2.0. Однако на сервере 2008 R2 с .net Framework 4.0 (я не уверен, что является причиной проблемы), я получил непреднамеренное поведение с «ValidatorEnable». На моей странице есть вкладки (usercontrols), и когда я оставлял вкладку, которая вызывала ValidatorEnable, он временно отключал валидаторы на следующей вкладке (даже если код не вызывался для их отключения) до следующей обратной передачи. 1007 *

1 голос
/ 24 июня 2013

Это старый вопрос, но удивил следующий ответ, который он не дал. Я реализовал это, используя комментарии выше, и работает без нареканий

# enable validation
document.getElementById('<%=mytextbox.ClientID%>').enabled = true

#disable validation
document.getElementById('<%=mytextbox.ClientID%>').enabled = false

Эта реализация может быть сложной, потому что помните, что если в javascript есть ошибка, код завершится, но вы не получите никаких ошибок. Некоторые полезные пункты

  1. Убедитесь, что вы можете установить точку останова , а может пошагово пройти код. Если нет, перезапустите браузер.

  2. Установите точку останова в начале функции, в которую вы поместили этот код. Пройдите по коду, в случае ошибки код закроется, и вы не сможете войти в код.

  3. В Firefox Firebug вы можете ввести весь оператор javascript на вкладке консоли, чтобы увидеть, что возвращает ваш оператор. Самое главное, вы хотите проверить ненулевые значения элементов управления.

1 голос
/ 05 января 2009

Кроме того, вместо простого сокрытия элементов можно установить для свойства Visible значение false ...

whateverItem.Visible = false;

Это приводит к тому, что этот элемент просто не отображается на странице, что, по моему мнению, отключает проверку. Кто-нибудь, пожалуйста, поправьте меня, если я ошибаюсь.

0 голосов
/ 29 декабря 2015

Лучший способ сделать это,

function doSomething()
{
    var objvalidator = document.getElementById('myValidatorClientID');
    objvalidator.enabled = false;
    objvalidator.isvalid = true;
    ValidatorUpdateDisplay(objvalidator);
}
0 голосов
/ 05 июля 2009

Вот подробная статья о том, как управлять валидаторами ASP.NET из JavaScript:

Как управлять проверкой ASP.NET на стороне клиента с помощью JavaScript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...