SoloCodigo

Programación Web y Scripting => JavaScript => Mensaje iniciado por: leodimonio en Jueves 13 de Septiembre de 2012, 21:23

Título: javascrip / update panel / control de usuarios
Publicado por: leodimonio en Jueves 13 de Septiembre de 2012, 21:23
tengo el siguiente inconveniente, yo esto utilizando un control que a su vez utiliza otro que tiene una mascara de javascript, el tema este, en mi primer control yo tengo un radio button que genera un postback, el problema es que si yo lo agrego como asyncronico con el evento CheckedChanged, el foco de la pagina se mantiene pero la mascara no se me muestra, y si lo hago postback me carga la mascara, pero el foco de la pantalla se me va para  arriba, ya no se que porbar, necesito ayuda, saludos
Título: Re:javascrip / update panel / control de usuarios
Publicado por: .net en Sábado 15 de Septiembre de 2012, 20:57
No entiendo la mascara aque la estas aplicando ?
Título: Re:javascrip / update panel / control de usuarios
Publicado por: leodimonio en Martes 25 de Septiembre de 2012, 16:41
la mascara se la estoy aplicando a un TextBox
te paso el codigo del webusercontrol
<script type="text/javascript">
    $(document).ready(function () {
        jqMeioMaskHelper.showMask('<%=txtMaskEdit.ClientID %>'
                                 , $("#<%=hdnFormatoMascara.ClientID%>").val()
                                 , $("#<%=hdnDefaultValue.ClientID%>").val()
                                 , $("#<%=hdnLongitud.ClientID%>").val()
                                 , $("#<%=hdnFixedChars.ClientID%>").val()
                                 );
    });

    $(".campoMascara").live('focus', function () {
        txtMaskEditID = $(this).attr('id');
        hdnFormatoMascara = $(this).next();
        hdnDefaultValue = hdnFormatoMascara.next();
        hdnLongitud = hdnDefaultValue.next();
        hdnFixedChars = hdnLongitud.next();

        jqMeioMaskHelper.showMask(txtMaskEditID, hdnFormatoMascara.val(), hdnDefaultValue.val(), hdnLongitud.val(), hdnFixedChars.val());
    });

    function validarLongitud(oSrc, args) {
        var defaultValue = $("#" + oSrc.controltovalidate.replace('txtMaskEdit', 'hdnFormatoMascara')).val();
        var longitud = $("#" + oSrc.controltovalidate.replace('txtMaskEdit', 'hdnLongitud')).val();
        var mskValor = getUnmaskedVal(oSrc.controltovalidate);
        var ignoreThis = $("#" + oSrc.controltovalidate.replace('txtMaskEdit', 'hdnIgnoreThis')).val();
        args.IsValid = (longitud == '' || mskValor.length == longitud || mskValor.length == 0 || mskValor.length == ignoreThis.length);
    };

    //Retorna el valor ingresado sin la máscara.
    function getUnmaskedVal(idMaskEdit) {
        //Obtengo el id del hdn que contiene los fixed chars
        var idFixedChar = idMaskEdit.replace('txtMaskEdit', 'hdnFixedChars')
        var ignoreThis=$("#"+idMaskEdit.replace('txtMaskEdit', 'hdnIgnoreThis')).val();
        //Obtengo los caracteres de relleno de la máscara y elimino los '[]'.               
        var fikedChars = $('#'+idFixedChar).val().replace('[', "").replace(']', "").split("");
        //Elimino los caracteres '_' correspondientes al default value.
        var unmaskedVal = $('#' + idMaskEdit).val().replace(/_/g, "");
        //Elimino los caracteres de relleno para obtener el valor del campo sin la máscara       
        $.each(fikedChars, function (index, value) {
            if (value != ignoreThis) {
                var fChar = new RegExp(value, 'g');
                unmaskedVal = unmaskedVal.replace(fChar, "");
            }           
        });
        return unmaskedVal;
    };

    function validarRequerido(oSrc, args) {
        var unmaskedVal = getUnmaskedVal(oSrc.controltovalidate);
        args.IsValid =  (unmaskedVal.length != 0);
    };
</script>

<asp:TextBox ID="txtMaskEdit" runat="server" CssClass="campoMascara"  ontextchanged="txtMaskEdit_TextChanged"></asp:TextBox>
<asp:HiddenField ID="hdnFormatoMascara" runat="server" />
<asp:HiddenField ID="hdnDefaultValue" runat="server" />
<asp:HiddenField ID="hdnLongitud" runat="server" />
<asp:HiddenField ID="hdnFixedChars" runat="server" />
<asp:HiddenField ID="hdnIgnoreThis" runat="server" />

<asp:CustomValidator
    id="rfvMaskEdit"
    Text="(*)"
    InitialValue=""
    ControlToValidate="txtMaskEdit"
    Display="Dynamic"
    ErrorMessage="(*)"
    Runat="server"
    Enabled ="false"
    ClientValidationFunction="validarRequerido" />
<asp:CustomValidator
    ID="cvMaskEdit"
    runat="server"
    ErrorMessage="Debe ingresar x dígitos."
    Text="Debe ingresar 15 dígitos."
    Display="Dynamic"
    ControlToValidate="txtMaskEdit" ClientValidationFunction="validarLongitud"
    EnableClientScript="true" onservervalidate="cvMaskEdit_ServerValidate"/>