Galera mais um vez esse problema de browsers ,agora o problema é que no ie ele não quer formatar,usei a mesma formala passado por um amigo do guj,mesmo assim não funfou alguma sugestão ou algo que fiz errado.
function maskIt(component, event, mascara) {
// Cancela se o evento for Backspace
var e = window.event;
if (e.which){
code = e.which;
}else{
code = e.keyCode;
}
// Variaveis da função
var txt = component.value.replace(/[^\d]+/gi, '').reverse();
var mask = mascara.reverse();
var ret = "";
txt = removeLastZeros(txt);
// Loop na mascara para aplicar os caracteres
for ( var x = 0, y = 0, z = mask.length; x < z && y < txt.length;) {
if (mask.charAt(x) != '#' && mask.charAt(x) != '9') {
ret += mask.charAt(x);
x++;
} else {
ret += txt.charAt(y);
y++;
x++;
}
}
component.value = ret.reverse();
addZero(component);
}
function validaTeclado(component, evt, mascara,e) {
var charCode = null;
if (e.which) {
charCode = e.which;
} else {
charCode = e.keyCode;
}
//se for backspace sempre permite a ação do botão
if(charCode == 8) {
return true;
}
//Verifica se o valor do caractere nao corresponde a um numero
//Caso nao corresponda retorna false
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
//verifica o tamanho do campo com a mascara
//primeiro remove os caracteres especiais da mascara (fica apenas
//o 9 e o #
var maskClear = mascara.replace(/[^#9]+/gi, '');
var txt = component.value.replace(/[^\d]+/gi, '');
if(txt.length >= maskClear.length) {
return false;
}
//caso não haja problema, aceita
return true;
}
<td><input type="text" id="rendaMensal" name="rendaMensal"
class="tamanhoMedioTexto" onkeypress="return validaTeclado(this, event, '99.999.999,99')"
onchange="maskIt(this, event, '99999.999,99')"
onfocus="setFieldPosition(this)" maxlength="13"
value="${rendaMensal}"></td>