Bom dia,
usei uma mascara para um campo'mask:000.000.000', mas não atende, preciso de uma que fique, exemplo: 111,00023 ou 10,00001 e 1,00056 algo do tipo, que não me aceite . apenas virgulas e que tenha 5 casas decimais após a virgula
Alguém tem uma luz??
abraço
1 curtida
x = "111,00023";
x.substring(0, 9);
utilizável em todos os casos :)
@Thiago,
Você pode utilizar esse plugin: jquery.maskMoney.min.js (você tem que baixá-lo e adicionar no seu projeto)
Segue código abaixo utilizando esse plugin.
Campo:
<input type="text" class="form-control text-right money" name="txt_valor" id="txt_valor">
Javascript:
// todos os campos com a classe "money" irão assumir essa máscara
$(".money").maskMoney({
allowZero: true, // se permite 0
thousands: '.', // separador milhar
decimal: ',', // separador decimal
precision: 5, // quantas casas decimais são permitidas
affixesStay: false // Defina se o prefixo e o sufixo permanecerão no valor do campo depois que o usuário sair do campo
});
Segue um site também como auxílio:
http://www.rafaelwendel.com/2012/07/mascara-para-campos-monetarios-com-jquery-maskmoney/
nem assim!! tem algo conflitante!!
@Gabriel,
não funcionou, dentro do Fluig a mascara não é lida. Alguma outra ideia ou tratamento??
Abraço
@Thiago, deu algum erro no console do navegador?
@Gabriel, Não deu erro, o campo não ficou com a mascara!!! No studio o campo ficou com a mascara!!
@Thiago,
Pode usar essa função abaixo, eu uso ela pra formatar como moeda no formato 999.999,99, comentei as duas primeiras linhas pra que tu possa ver como ela funcionava, e alterei a terceira linha do replace para usar a vírgula aceitando 5 casas decimais.
function formatarValor(p_elemento){
g_obj_data = p_elemento;
setTimeout("executarFormataValor()", 1);
}
function executarFormataValor(){
l_valor = g_obj_data.value;
l_valor = l_valor.replace(/\D/g,"") ;
//l_valor = l_valor.replace(/(\d)(\d{8})$/,"$1.$2");
//l_valor = l_valor.replace(/(\d)(\d{5})$/,"$1.$2");
l_valor = l_valor.replace(/(\d)(\d{5})$/,"$1,$2");
g_obj_data.value = l_valor;
}
Eu fiz uma adaptação aqui e tem funcionado para mim:
$(".quant").mask('000.000.000,0000', {reverse: true})
.on('blur', function(){
if ($(this).val() == '') $(this).val('0,0000')
else if ($(this).val().substring($(this).val().lastIndexOf(",")).length <= 4) $(this).val($(this).val() + ',0000');
}).trigger('blur');