Pular para o conteúdo principal

Removendo controle HTML da validação do Validator do Asp.Net com jQuery

Artigo que ensina como gerenciar os controles HTML que estão associados com algum controle Validator do Asp.Net. Utiliza jQuery.

Artigo:

Validators are a great part of the ASP.NET framework: they provide a standardized and easy way to add validation to form fields. But even if the framework provides different kinds of validators, there are so many different validations patterns that sometimes you have to write custom code to match your specific requirements.

I wrote a post a few months ago about how to write a custom validator for a Checkbox list, but I was dealing with a completely new validation pattern. But what if I only want to enable the validation of certain field based on certain conditions? Or if I want to validate based on an event that is not the OnChange event of the form field? And all of this while keeping the standard validation logic?

If the condition can be determined in the code-behind it's easy:

//Disable server side validation
myRequiredFieldValidator.Enabled = false;
//Disable client side validation
myRequiredFieldValidator.EnableClientScript = false;

But what if I want to enable the validator from javascript? I didn't find anything online about this so I debugged the ASP.NET js validation library to look for the method that enables the validation, and for the one that forces the validation check.
Enable a validator via javascript

The method to enable or disable a validator is:

function ValidatorEnable(val, enable)

where val is the reference to the element that the validator uses to render the error message, and enable is a boolean to tell the method whether to enable or disable the validation.
Force a validation via javascript

In case you want to ask to a validator to do his job:

function ValidatorValidate(val, validationGroup, event)

val is again the reference to the validator , validationGroup is the name of the validation group of the element that is triggering the validation, event is the reference to the event that triggered the validation. But only the first parameter is useful when you want to force the validation, since the others are used only by the standard validation of ASP.NET.
A real life example

Let's see a example from the code I'm writing for one of the new features of Subtext.
Imagine you have this snippet of HTML code:


audio/mpeg
audio/wma
Other


ControlToValidate="txbOtherMimetype" ForeColor="#990066"
ErrorMessage="You have to specify a custom mimetype." />

And you want to enable the valOtherMimeTypeRequired validator only when the option selected in the drop down is "other".

Using jQuery here is the javascript code to do the job:



Notice the <%= ddlMimeType.ClientID %> to select a server-side control using the automatically generated client ID and the $("#elemendId")[0] to get the real DOM element and not the jQuery wrapper around it.

And in case I wanted to force the validation I should have written:

ValidatorValidate($("#<%= valEncOtherMimeTypeRequired.ClientID %>")[0]);

It took me a while to find out this method name. I hope this will save you a bit of the time I spent hunting down the names using Firebug.

Fonte: http://codeclimber.net.nz/archive/2008/05/14/how-to-manage-asp.net-validation-from-javascript-with-jquery.aspx

Comentários

Postagens mais visitadas deste blog

EmguCV DLL Not Found Exception -Unable to find cvextern?

Eu também tive os mesmos problemas. Neste fórum emgucv , não sei por que cvextern.dlldo emgucv 3.4.3 não é possível carregar cvextern (porque não é possível encontrar cvextern), e você permitiu usar o arquivo cvextern.dlldo emgucv 3.4.2 (certifique-se de escolher x64 / x86), copie /bin/Debuge este arquivo é encontrado automaticamente /bin/Debug/x86ou /bin/Debug/x64quando você termina de construir o programa no Visual Studio.  O Erro:  The type initializer for 'Emgu.CV.CvInvoke' threw an exception. : Unable to load DLL 'cvextern': The specified module could not be found. (Exception from HRESULT: 0x8007007E)  Para resolver o problema copia a pasta x64 ou x86 para dentro da pasta bin da aplicação. Ou copie os arquivos para dentro da pasta bin da aplicação WCF.

Rastreador Tag Bluetooth MiTag Android

Configuração e Rastreamento com Mi Tag O vídeo apresenta uma solução de rastreamento de equipamentos por meio de uma tag chamada MiTag, que foi comprada no AliExpress. O comunicador explica que esta tag funciona sem a necessidade de internet ou chip, utilizando a rede Bluetooth de outros celulares próximos para propagar sua localização até o aplicativo no celular do usuário. O vídeo demonstra o processo de configuração inicial da tag com o aplicativo Google Finder Hub, que é o localizador do Google, exclusivo para Android. Por fim, o tutorial também mostra como desinstalar e resetar a MiTag, um processo necessário caso o usuário queira emparelhar o dispositivo com um celular diferente, já que a tag fica bloqueada após a primeira conexão. https://youtu.be/mm1Z5lus7ag ## Funcionalidades Essenciais da Mi Tag As principais funcionalidades da Mi Tag giram em torno da capacidade de rastreamento independente e de longa duração: 1. **Rastreamento Sem Necessidade de Internet ou Chip:...

Gesseiro no Guará

DIONATO SOARES GESSEIRO Serviços/Produtos:  Gesseiro no Guará, Serviços com gessos, gesseiro, Guará-DF Endereço:  Guará - DF Site:   https://ds-servicos-reformas.com.br/ Telefone(s): (61) 98144-9158 (61) 98546-1059 Serviço de Gesseiro em Guara / DF Preço para Serviço de Gesseiro em Guara / DF Quer saber o  preço para serviço de gesseiro em Guara / DF ? Entre em contato conosco! Teremos prazer em lhe apresentar o melhor  orçamento para serviço de gesseiro em Guara / DF  considerando não somente o preço mais também a qualidade do serviço. Fotos de Serviço de Gesseiro em Guara / DF Procurando  fotos de serviço de gesseiro em Guara / DF ? Abaixo apresentaremos algumas fotos de trabalhos realizados em serviço de gesseiro em Guara / DF: Ops, ainda não terminamos de cadastrar todas as  fotos de serviço de gesseiro em Guara / DF , retorne em breve ou entre em contato para que possamos apresentar o nosso  portfólio de fotos ...