jow Postado Maio 13, 2009 Denunciar Share Postado Maio 13, 2009 Bom dia tenho um campo em meu formulário q formata um valor para o tipo Currency, porém não me deixa eu apagar o valor caso o mesmo esteja errado ... Como faço para resolver isso ... Abaixo o meu código <input type="text" size="10" name="textfield32" onKeyPress="return(currencyFormat(this,'.',',',event))"> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jow Postado Maio 13, 2009 Autor Denunciar Share Postado Maio 13, 2009 Consegui essa função na net, que resolve o problema em partes .... O q falta para esse script é só aceitar a digitação de números ....function FormataValor(id,tammax,teclapres) { if(window.event) { // Internet Explorer var tecla = teclapres.keyCode; } else if(teclapres.which) { // Nestcape / firefox var tecla = teclapres.which; } vr = document.getElementById(id).value; vr = vr.toString().replace( "/", "" ); vr = vr.toString().replace( "/", "" ); vr = vr.toString().replace( ",", "" ); vr = vr.toString().replace( ".", "" ); vr = vr.toString().replace( ".", "" ); vr = vr.toString().replace( ".", "" ); vr = vr.toString().replace( ".", "" ); tam = vr.length; if (tam < tammax && tecla != 8){ tam = vr.length + 1; } if (tecla == 8 ){ tam = tam - 1; } if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){ if ( tam <= 2 ){ document.getElementById(id).value = vr; } if ( (tam > 2) && (tam <= 5) ){ document.getElementById(id).value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 6) && (tam <= 8) ){ document.getElementById(id).value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 9) && (tam <= 11) ){ document.getElementById(id).value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 12) && (tam <= 14) ){ document.getElementById(id).value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 15) && (tam <= 17) ){ document.getElementById(id).value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );} } } </script>Alguém pode me ajudar a fazer com q esse script aceite apenas números no campo do formulário Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romerito Postado Maio 13, 2009 Denunciar Share Postado Maio 13, 2009 (editado) i aew jow, bom tenta tipo isso aqui:if(window.event) { // Internet Explorer var tecla = teclapres.keyCode; } else if(teclapres.which) { // Nestcape / firefox var tecla = teclapres.which; } //PARTE QUE VERIFICA if ( tecla == 8 || tecla ==0 ) return true; else if ( tecla < 48 || tecla > 57 ) return false; vr = document.getElementById(id).value; vr = vr.toString().replace( "/", "" ); vr = vr.toString().replace( "/", "" ); vr = vr.toString().replace( ",", "" ); vr = vr.toString().replace( ".", "" ); vr = vr.toString().replace( ".", "" ); vr = vr.toString().replace( ".", "" ); vr = vr.toString().replace( ".", "" ); tam = vr.length; if (tam < tammax && tecla != 8){ tam = vr.length + 1; } if (tecla == 8 ){ tam = tam - 1; } if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){ if ( tam <= 2 ){ document.getElementById(id).value = vr; } if ( (tam > 2) && (tam <= 5) ){ document.getElementById(id).value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 6) && (tam <= 8) ){ document.getElementById(id).value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 9) && (tam <= 11) ){ document.getElementById(id).value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 12) && (tam <= 14) ){ document.getElementById(id).value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 15) && (tam <= 17) ){ document.getElementById(id).value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );} } } no input você chama tipo assim: <input type="text" id="campo" onkeypress="return FormataValor( 'campo' , 6 , event )" />espero que ajude, abraço. Editado Maio 13, 2009 por Romerito Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jow Postado Maio 13, 2009 Autor Denunciar Share Postado Maio 13, 2009 (editado) Valeu brother, perfeito meu script ficou assim :::function FormataValor(id,tammax,teclapres) { if(window.event) { // Internet Explorer var tecla = teclapres.keyCode; } else if(teclapres.which) { // Nestcape / firefox var tecla = teclapres.which; } //PARTE QUE VERIFICA if ( tecla == 8 || tecla ==0 ) return true; else if ( tecla < 48 || tecla > 57 ) return false; vr = document.getElementById(id).value; vr = vr.toString().replace( "/", "" ); vr = vr.toString().replace( "/", "" ); vr = vr.toString().replace( ",", "" ); vr = vr.toString().replace( ".", "" ); vr = vr.toString().replace( ".", "" ); vr = vr.toString().replace( ".", "" ); vr = vr.toString().replace( ".", "" ); tam = vr.length; if (tam < tammax && tecla != 8){ tam = vr.length + 1; } if (tecla == 8 ){ tam = tam - 1; } if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){ if ( tam <= 2 ){ document.getElementById(id).value = vr; } if ( (tam > 2) && (tam <= 5) ){ document.getElementById(id).value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 6) && (tam <= 8) ){ document.getElementById(id).value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 9) && (tam <= 11) ){ document.getElementById(id).value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 12) && (tam <= 14) ){ document.getElementById(id).value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); } if ( (tam >= 15) && (tam <= 17) ){ document.getElementById(id).value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );} } } pra chamar a função <input type="text" name="campo" id="campo" onkeypress="return FormataValor(this.id , 10 , event )" maxlength="10" /> Editado Maio 13, 2009 por jow Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
jow
Bom dia tenho um campo em meu formulário q formata um valor para o tipo Currency, porém não me deixa eu apagar o valor caso o mesmo esteja errado ... Como faço para resolver isso ... Abaixo o meu código
Link para o comentário
Compartilhar em outros sites
3 respostass 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.