você pode ter personalizado do lado do cliente javascript validação de formulário padrão ASP.NET Web Validators?
-
02-07-2019 - |
Pergunta
Can você tem costume do lado do cliente javascript validação de formulário padrão ASP.NET Web Validators?
Por exemplo o uso de um asp:. RequiredFieldValidator deixar o código do lado do servidor sozinho, mas implementar a sua própria notificação do cliente usando jQuery para destacar o campo cor ou o fundo, por exemplo,
Solução
O padrão CustomValidator tem um ClientValidationFunction propriedade para que:
<asp:CustomValidator ControlToValidate="Text1"
ClientValidationFunction="onValidate" />
<script type='text/javascript'>
function onValidate(validatorSpan, eventArgs)
{ eventArgs.IsValid = (eventArgs.Value.length > 0);
if (!eventArgs.IsValid) highlight(validatorSpan);
}
</script>
Outras dicas
Sim, eu tenho feito isso. Eu costumava Firebug para descobrir as funções Dot.Net JS e depois seqüestraram as funções de validação
A seguir irá ser aplicada a todos os validadores e é puramente lado do cliente. Eu usá-lo para mudar a maneira como a validação ASP.Net é exibido, não do jeito que a validação é realmente realizado. Ele deve ser envolto em um (documento) $ .ready () para garantir que ele substitui a validação ASP.net originais.
/**
* Re-assigns a couple of the ASP.NET validation JS functions to
* provide a more flexible approach
*/
function UpgradeASPNETValidation(){
// Hi-jack the ASP.NET error display only if required
if (typeof(Page_ClientValidate) != "undefined") {
ValidatorUpdateDisplay = NicerValidatorUpdateDisplay;
AspPage_ClientValidate = Page_ClientValidate;
Page_ClientValidate = NicerPage_ClientValidate;
}
}
/**
* Extends the classic ASP.NET validation to add a class to the parent span when invalid
*/
function NicerValidatorUpdateDisplay(val){
if (val.isvalid){
// do custom removing
$(val).fadeOut('slow');
} else {
// do custom show
$(val).fadeIn('slow');
}
}
/**
* Extends classic ASP.NET validation to include parent element styling
*/
function NicerPage_ClientValidate(validationGroup){
var valid = AspPage_ClientValidate(validationGroup);
if (!valid){
// do custom styling etc
// I added a background colour to the parent object
$(this).parent().addClass('invalidField');
}
}
O que você pode fazer é gancho no validador e atribuir uma nova avaliar método, assim:
<script type="text/javascript">
rfv.evaluationfunction = validator;
function validator(sender, e) {
alert('rawr');
}
</script>
RFV é o ID do meu validador campo obrigatório. Você tem que fazer isso na parte inferior da sua página para que ele atribui a ele após o javascript para o validador está registrado.
Seu muito mais fácil simplesmente usar o CustomFieldValidator e atribuir sua propriedade validação do lado do cliente.
<asp:CustomValidator ControlToValidate="txtBox" ClientValidationFunction="onValidate" />
<script type='text/javascript'>
function onValidate(sender, e)
{
alert('do validation');
}
</script>