Post details

Administrando los controles de validación desde javascript con jquery

Posted by SJOrrillo Wed, 17 Mar 2010 01:34:00 GMT

Los controles de validación que nos proporciona asp.net nos brindan una fácil manera de agregar validaciones a nuestros controles. Pero que pasa si tú quieres habilitar o deshabilitar un control de validación ante una determinada acción, como lograr esto...?

Habilitar la validación desde javascript:

Existe un método para habilitar o deshabilitar los controles de validación.

function ValidatorEnable(val, enable)

Donde val hace referencia al control de validación, y enable es un boolean para poder decirle al método cuando habilitar o deshabilitar la validación.

Caso Aplicativo:

Supongamos que tenemos un escenario donde queremos determinar si paginamos o no los registros a mostrar.

<div style="width:80%; margin:2em auto;">
    <asp:ValidationSummary runat="server" ID="valSummary" ValidationGroup="val" />
    <asp:CheckBox runat="server" ID="ckbPaginacion" Text="Habilitar paginación" />
    <div id="registros">
       Número de registros: 
       <asp:TextBox ID="txtNumeroRegistros" runat="server" Width="50" />
       <asp:RequiredFieldValidator ID="valNumeroRegistros" runat="server" 
          ControlToValidate="txtNumeroRegistros" ValidationGroup="val" 
          Text = "*" ErrorMessage="Tu tienes que especificar el numero de registros" 
          ToolTip="Tu tienes que especificar el numero de registros"/>
    </div><br />
    <asp:Button runat ="server" ID="btnEnviar" Text="Enviar" ValidationGroup="val"/>
</div>

Queremos que al seleccionar una checkbox podamos ingresar el numero de registros que se mostraran por pagina y permitir la validación de mismo, pero al no estar chekeado deshabilitar la validación para ese campo.

Usamos jquery aquí para hacer el trabajo planteado de habilitar o deshabilitar:

<script src="http://www.google.com/jsapi"></script>
 <script type="text/javascript">
    google.load("jquery", "1.4.1", { uncompressed: true });
    google.setOnLoadCallback(function() {
        EnableValidator(false);
        $("#<%= ckbPaginacion.ClientID%>").click(function() {
              EnableValidator(this.checked);
        });
    });

    function EnableValidator(isEnabled) {
        ValidatorEnable($("#<%= valNumeroRegistros.ClientID%>")[0], isEnabled);
        ValidationSummaryOnSubmit();
        if(isEnabled == true)
            $("#registros").show();
        else
            $("#registros").hide();
    }
</script>

Nota: Debemos tener en cuenta el $("#ControlValidacionId")[0] para obtener el real DOM, y al método ValidationSummaryOnSubmit(), para actualizar los mensajes de validación.

Espero les sea de utilidad Smile

Tags: Asp.Net, jquery views: 540

Comments

Se el primero en dejar un comentario...

Leave a comment

Nombre*  
Sitio Web  
Pais
Country flag
biu
  • Comentario
  • Vista previa
 
Puedes usar emoticonos en tu comentario usando codigos
CoolCryEmbarassedFootFrownInnocentKissLaughingMoneySealedSmileSmileSurprisedTongUndecidedWinkYell
(H):'(:$:|:((A)(K):D($):-#:):-):-O:P*-);-)8o|
Captcha Image Ingrese el codigo mostrado