Jump to content


unidimension

Member Since 17/10/2010
Offline Last Active 27/10/2010, 06:02
-----

Posts I've Made

In Topic: Mascaramoeda

17/10/2010, 17:47

Dê uma olhada aqui:

Clique aqui

In Topic: Formatar Dados Em Real (r$)

17/10/2010, 17:22

Galera, consegui resolver o problema, inclusive funciona nos dois navegadores.

O código é simples, prático de entender e funcional:

Primeiro o script:
function MascaraMoeda(campo){//Cada vez que a tecla é liberada...
    //Impedimos entrada de letras...
    SomenteNumeroPontoVirgula(campo);
    //Removemos vírgula e ponto da mácara, se tiver...
    var valor = limpar(campo.value,"0123456789");
    //Obtemos o tamanho somente dos números...
    var tamanho    = valor.length;

    if(tamanho == 3){
        mascaraCampo(campo,'#,##');
    }

    if(tamanho == 4){
        mascaraCampo(campo,'##,##');
    }

    if(tamanho == 5){
        mascaraCampo(campo,'###,##');
    }

    if(tamanho == 6){
        mascaraCampo(campo,'#.###,##');
    }

    if(tamanho == 7){
        mascaraCampo(campo,'##.###,##');
    }

    if(tamanho == 8){
        mascaraCampo(campo,'###.###,##');
    }
}

//Entrada de números e caracteres específicos apenas
function SomenteNumeroPontoVirgula(campo){
    var digits="0123456789,."
    var campo_temp
    for (var i=0;i<campo.value.length;i++){
        campo_temp=campo.value.substring(i,i+1)
        if (digits.indexOf(campo_temp)==-1){
            campo.value = campo.value.substring(0,i);
            break;
        }
    }
}

// Limpa um string
function limpar(valor,conjuntoVerdade) {
    var resultado = "";
    for( var a = 0; a < valor.length ; a++ ) {
        if ( conjuntoVerdade.indexOf(valor.substring(a,a+1)) >= 0 ) {
            resultado += valor.substring(a,a+1);
        }
    }
    return resultado;
}

// Formatação de mascara
function mascaraCampo(campo,formatoMascara) {
    var valorLimpo = limpar(campo.value,"0123456789");
    var resultado = "";
    var b = 0;
    for( var a = 0; a < formatoMascara.length ; a++ ) {
        if ( formatoMascara.substring(a,a+1) == "#" ) {
            resultado = resultado + valorLimpo.substring(b,b+1);
            b++;
            if ( b >= valorLimpo.length ) {
                break;
            }
        } else {
            resultado = resultado + formatoMascara.substring(a,a+1);
        }
    }
    campo.value = resultado;
}

Agora para utilizar:
<input type="text" id="valor" name="valor" value="${valor}" size="19" style="text-align:right" maxlength="10" onkeyup="MascaraMoeda(this)"/>

Obs.: Eu limitei para aceitar valores até 999.999,99. O tamanho total do campo, mas vocês podem personalizar.

Espero ter ajudado.

In Topic: Máscara Para Moeda

17/10/2010, 16:11

Boa Tarde,

Colegas, sou novo no fórum, e também estou procurando a mesma coisa. Um script de máscara para campo de valores númericos, moeda em real. Semelhante aos usados no banco.

Outra coisa, alguém sabe como fazer aquele campo data que tem uma imagem do lado, que após ser clicada abre uma janela com os meses para seleção da data em questão.

Pesquisei no fórum, mas não encontrei nada, ainda estou aprendendo a utilizar os recursos do portal, mas se puderem me ajudar, desde já agradeço.

IPB Skin By Virteq