Как включить отключенный пользовательский валидатор с помощью jquery

у меня отключен настраиваемый валидатор, который я хочу включить с помощью jquery.
как я могу это сделать?
приведенный ниже код работает для RequiredFieldValidators, но не для CustomValidators:

        ValidatorEnable($('#cvPass'), true);

каково решение?
EDIT:
я использую проверку на стороне сервера, а не на стороне клиента.
когда мы используем проверку на стороне клиента, нет проблем с включением и отключением Пользовательский валидатор.
спасибо за хорошие простые коды @Josh Mein

заранее спасибо


person SilverLight    schedule 28.06.2012    source источник
comment
Я разместил дополнительный комментарий в своем ответе, который, я думаю, проинформирует вас о том, что может произойти.   -  person Josh Mein    schedule 28.06.2012


Ответы (1)


У меня не было никаких проблем с тем, что вы пробовали. Вот быстрый пример, который сработал для меня:

HTML:

<asp:TextBox runat="server" ID="txt_Test" />
<asp:CustomValidator runat="server" ID="val_Test" ValidateEmptyText="true" ClientValidationFunction="MyValidation" ControlToValidate="txt_Test" ErrorMessage="Test"></asp:CustomValidator>
<asp:Button runat="server" ID="btn_Test" Text="Test" onclick="btn_Test_Click" />
<input type="button" value="disable validator" onclick="disableValidator()" />
<input type="button" value="enable validator" onclick="enableValidator()" />

Javscript:

function enableValidator() {
    ValidatorEnable($('[id$=val_Test]')[0], true);
}

function disableValidator() {
    ValidatorEnable($('[id$=val_Test]')[0], false);
}

function MyValidation(sender, args) {
    if ($('[id$=txt_Test]').val() == "")
        args.IsValid = false;
}

Редактировать. Благодаря вашей новой информации я, кажется, понял, в чем проблема. Перед началом проверки сервера страница перезагружается, что приводит к отключению валидатора, поскольку, согласно серверу, это было его последнее известное состояние. Это связано с тем, что валидаторы не являются элементами управления, значения которых отправляются обратно на сервер. Вы можете установить hiddenField со значением, которое может указать серверу проверить элемент управления.

person Josh Mein    schedule 28.06.2012
comment
спасибо за ответ / но вы отключили его, и я думаю, что в этом нет проблем. я хочу включить отключенный CustomValidator!! - person SilverLight; 28.06.2012
comment
так что извини, чувак, я забыл сказать тебе, что я использую проверку на стороне сервера. ваши простые коды работали в обоих направлениях. но как насчет проверки на стороне сервера? - person SilverLight; 28.06.2012
comment
Какой тип поля вы проверяете? - person Josh Mein; 28.06.2012
comment
я проверяю имя пользователя и пароль с помощью этого пользовательского валидатора. однако спасибо за редактирование. использование скрытого поля - хорошая идея, поэтому я принял ваш ответ. - person SilverLight; 29.06.2012
comment
Почему он когда-либо был отключен? - person Josh Mein; 29.06.2012
comment
при размытии другого текстового поля (электронная почта - использует PagesMethods) я включу этот отключенный настраиваемый валидатор (с соответствующим текстовым полем). отображение этого пользовательского валидатора отсутствует при первой загрузке страницы (также это текстовое поле), и я покажу его при размытии этого текстового поля электронной почты. - person SilverLight; 29.06.2012
comment
поэтому в некоторых ситуациях я хочу использовать этот пользовательский валидатор, а в других нет... - person SilverLight; 29.06.2012