Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera,
Alguem sabe alguma maneira de colocar as casas decimais "se o usuário digitar" ? Exemplo:
>
Valor: 3333
Mask: 3.333
Caso o usuário digite ",55" no final, o mask fique "3.333,55".
já tentei com as bibliotecas abaixo mas não consegui realizar este feito.
maskMoney: https://plugins.jquery.com/maskMoney/
mask: https://igorescobar.github.io/jQuery-Mask-Plugin/
Desde já agradeço !
>
Opa blz. Algo assim que você procura.
<script >
function moeda(z){
v = z.value;
v=v.replace(/\D/g,"") //permite digitar apenas números
v=v.replace(/[0-9]{12}/,"inválido") //limita pra máximo 999.999.999,99
v=v.replace(/(\d{1})(\d{8})$/,"$1.$2") //coloca ponto antes dos últimos 8 digitos
v=v.replace(/(\d{1})(\d{1,2})$/,"$1.$2") //coloca ponto antes dos últimos 5 digitos
//v=v.replace(/(\d{1})(\d{1,2})$/,"$1,$2") //coloca virgula antes dos últimos 2 digitos
z.value = v;
}
</script>
Preço
<input class="inputs" type="text" id="preco" name="preco" onKeyUp="moeda(this);" />
Meu GitHUb
Valeu César ... quase lá !
quando digito 3333 a function transforma em 33.33 quando devia ser 3.333
no caso da virgula, se o usuário digitar 3333,25 ai a function transforma em 3.333,25
sei que isso é meio incomum, mas sabe como é cliente né <_<
Valeuu
Ola
>
Valeu César ... quase lá !
quando digito 3333 a function transforma em 33.33 quando devia ser 3.333
no caso da virgula, se o usuário digitar 3333,25 ai a function transforma em 3.333,25
sei que isso é meio incomum, mas sabe como é cliente né <_<
Valeuu
Ola Nathan.. .tudo bem? espero que esse te ajude:
<script>
/ chamada :onkeydown="FormataValor(this,28,event,2,'.','.');" /
function FormataValor(campo,tammax,teclapres,decimal,ptmilhar,ptdecimal) {
var tecla = teclapres.keyCode;
vr = LimpaValor(campo.value,"0123456789",tammax);
tam = vr.length;
dec = decimal;//alert(tam);
campo.value = vr.substr( 0, tam - dec ) + ptdecimal + vr.substr( tam - dec, tam ) ;campo.value = vr.substr( 0, tam - 24 - dec ) + ptmilhar + vr.substr( tam - 24 - dec , 3 ) + ptmilhar + vr.substr( tam - 21 - dec , 3 ) + ptmilhar + vr.substr( tam - 18 - dec , 3 ) + ptmilhar + vr.substr( tam - 15 - dec , 3 ) + ptmilhar + vr.substr( tam - 12 - dec , 3 ) + ptmilhar + vr.substr( tam - 9 - dec , 3 ) + ptmilhar + vr.substr( tam - 6 - dec , 3 ) + ptmilhar + vr.substr( tam - 3 - dec , 3 ) + ptdecimal + vr.substr( tam - dec , 12 ) ;
}
}
}
</script>ops malz ja ia me esquecendo faltou isso aqui!!!
<script>
// retira caracteres invalidos da string
function LimpaValor(valor, validos, tammax) {
var result = "";
var aux;
for (var i=0; i < valor.length; i++) {
aux = validos.indexOf(valor.substring(i, i+1));
if (aux>=0) {
if ( result.length < tammax - 1 ) {
result += aux;
}
}
}
return result;
}
/ chamada :onkeydown="FormataValor(this,28,event,2,'.','.');" /
function FormataValor(campo,tammax,teclapres,decimal,ptmilhar,ptdecimal) {
var tecla = teclapres.keyCode;
vr = LimpaValor(campo.value,"0123456789",tammax);
tam = vr.length;
dec = decimal;//alert(tam);
campo.value = vr.substr( 0, tam - dec ) + ptdecimal + vr.substr( tam - dec, tam ) ;campo.value = vr.substr( 0, tam - 24 - dec ) + ptmilhar + vr.substr( tam - 24 - dec , 3 ) + ptmilhar + vr.substr( tam - 21 - dec , 3 ) + ptmilhar + vr.substr( tam - 18 - dec , 3 ) + ptmilhar + vr.substr( tam - 15 - dec , 3 ) + ptmilhar + vr.substr( tam - 12 - dec , 3 ) + ptmilhar + vr.substr( tam - 9 - dec , 3 ) + ptmilhar + vr.substr( tam - 6 - dec , 3 ) + ptmilhar + vr.substr( tam - 3 - dec , 3 ) + ptdecimal + vr.substr( tam - dec , 12 ) ;
}
}
}
</script>
Opa blz. Algo assim que você procura.
Preço
<input class="inputs" type="text" id="preco" name="preco" onKeyUp="moeda(this);" />
Meu GitHUb
https://github.com/ckcesar