Tenho um script de máscara para valores que para ficar 100% precisa de mais um detalhezinho. É o seguinte:
Vamos supor que o valor que eu desejo dar é 2000. Ao digitar esse valor, com a máscara ele aparece R$ 2.000,00.
Porém, se eu digitar por engano 20000 e quiser retirar o ultimo '0' para que fique o valor que eu desejo, com a máscara esse valor aparecerá R$ 20.000,0.
Como eu poderia fazer com que a máscara, ao apagar dígitos, retocedesse as vírgulas e pontos?
<script>
function maskIt(w,e,m,r,a){
// Cancela se o evento for Backspace
if (!e) var e = window.event
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;
// Variáveis da função
var txt = (!r) ? w.value.replace(/[^\d]+/gi,'') : w.value.replace(/[^\d]+/gi,'').reverse();
var mask = (!r) ? m : m.reverse();
var pre = (a ) ? a.pre : "";
var pos = (a ) ? a.pos : "";
var ret = "";
if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length) return false;
// Loop na máscara para aplicar os caracteres
for(var x=0,y=0, z=mask.length;x<z && y<txt.length;){
if(mask.charAt(x)!='#'){
ret += mask.charAt(x); x++;
} else{
ret += txt.charAt(y); y++; x++;
}
}
// Retorno da função
ret = (!r) ? ret : ret.reverse()
w.value = pre+ret+pos;
}
// Novo método para o objeto 'String'
String.prototype.reverse = function(){
return this.split('').reverse().join('');
};
</script>
<html>
<input name="valor" type="text" id="valor" maxlength="17" onkeyup="maskIt(this,event,'###.###,##',true,{pre:'R$ ',pos:''})" />
</html>
Pergunta
Levi_gns
Bom dia a todos!
Tenho um script de máscara para valores que para ficar 100% precisa de mais um detalhezinho. É o seguinte:
Vamos supor que o valor que eu desejo dar é 2000. Ao digitar esse valor, com a máscara ele aparece R$ 2.000,00.
Porém, se eu digitar por engano 20000 e quiser retirar o ultimo '0' para que fique o valor que eu desejo, com a máscara esse valor aparecerá R$ 20.000,0.
Como eu poderia fazer com que a máscara, ao apagar dígitos, retocedesse as vírgulas e pontos?
Editado por fercosmigadd tag's :: fercosmig
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.