Programación Web y Scripting > JavaScript

 javascrip / update panel / control de usuarios

(1/1)

leodimonio:
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

.net:
No entiendo la mascara aque la estas aplicando ?

leodimonio:
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"/>

Navegación

[0] Índice de Mensajes

Ir a la versión completa