alguem poderia me ajudar a fazer uma mascara com script em q um campo soh aceite numero e em porcentual?
por exemplo valores do tipo 65.9%, 30%, 47.55% e assim por diante em um input text
como valor padrao ficaria 0.0% e a medida q o usuario digitasse iria alterando
entenderam?!
valews!!!
se possivel mantenha o autor…ok…
[]'s
/**
*
* GIULLIANO MORRONI
* Mascara para ser usada em campos com formato de moeda.
* Suporta até 99.999.999.999,99
*
* Ja possui bloqueio de caracteres que não sejam numeros.
*/
var posicaoMilhar;
var code;
function mascaraMoeda(obj,event){
if (!event) var event = window.event
if (event.keyCode){
code = event.keyCode;
}else if (event.which) {
code = event.which;
}
/*Aceita apenas numeros de 0-9*/
if(code > 57 || code < 48){
return false;
}
var valor = obj.value;
valor = valor.replace(',','');
valor = valor.replace(',','');
valor = valor.replace(',','');
valor = valor.replace(',','');
valor = valor.replace(',','');
valor = valor.replace('.','');
valor = valor.replace('.','');
valor = valor.replace('.','');
valor = valor.replace('.','');
valor = valor.replace('.','');
var primeiraCasa = valor.substring(0,1);
var segundaCasa = valor.substring(1,2);
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/* Dezena 0,01 */
if(valor.length == 0){
obj.value = '0,0'+valor;
}
/* Dezena 0,11 */
if(valor.length == 3 && segundaCasa == 0){
obj.value = '0,'+valor.substring(2,3);
}
/* Dezena 1,11 */
if(valor.length == 3 && segundaCasa > 0){
obj.value = valor.substring(1,2)+','+valor.substring(2,3);
}
/* Dezena 11,11 */
if(valor.length == 3&& primeiraCasa > 0){
obj.value = valor.substring(0,2) +','+ valor.substring(2,4);
}
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/* Centena 111,11 */
if(valor.length == 4){
obj.value = valor.substring(0,3) +','+ valor.substring(3,4);
posicaoMilhar = 1;
}
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/* Mil 11.111,11 */
if(valor.length == 6 && posicaoMilhar == 2){
obj.value = valor.substring(0,2) +'.'+valor.substring(2,5)+','+valor.substring(5,7);
}
/* Mil 1.111,11 */
if(valor.length == 5 && posicaoMilhar == 1){
obj.value = valor.substring(0,1) +'.'+valor.substring(1,4)+','+valor.substring(4,5);
posicaoMilhar = 2;
}
/* Mil 111.111,11 */
if(valor.length == 7){
obj.value = valor.substring(0,3) +'.'+valor.substring(3,6)+','+valor.substring(6,8);
posicaoMilhar = 3;
}
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/* Milhao 111.111.111,11 */
if(valor.length == 10 && posicaoMilhar == 5){
obj.value = valor.substring(0,3) +'.'+valor.substring(3,6) +'.'+valor.substring(6,9)+','+valor.substring(9,11);
}
/* Milhao 11.111.111,11 */
if(valor.length == 9 && posicaoMilhar == 4){
obj.value = valor.substring(0,2) +'.'+valor.substring(2,5)+'.'+valor.substring(5,8)+','+valor.substring(8,11);
posicaoMilhar = 5;
}
/* Milhao 1.111.111,11 */
if(valor.length == 8 && posicaoMilhar == 3){
obj.value = valor.substring(0,1) +'.'+valor.substring(1,4) +'.'+valor.substring(4,7)+','+valor.substring(7,9);
posicaoMilhar = 4;
}
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/* Bilhao 1.111.111.111,11 */
if(valor.length == 11){
obj.value = valor.substring(0,1)+'.'+valor.substring(1,4)+'.'+valor.substring(4,7)+'.'+valor.substring(7,10)+','+valor.substring(10,13);
}
/* Bilhao 11.111.111.111,11 */
if(valor.length == 12){
obj.value = valor.substring(0,2)+'.'+valor.substring(2,5)+'.'+valor.substring(5,8)+'.'+valor.substring(8,11)+','+valor.substring(11,12);
}
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
/* Não da suporte a trilhão */
if(valor.length > 12){
obj.value = valor.substring(0,2)+'.'+valor.substring(2,5)+'.'+valor.substring(5,8)+'.'+valor.substring(8,11)+','+valor.substring(11,12);
}
/*#############################################################################################################################################*/
/*#############################################################################################################################################*/
return true;
}
falews
vou testar
esqueci de mencionar o evento…
onkeypress(“return mascaraMoeda(this,event);”)