Validação de campos float - caixa eletronico

5 respostas
D

olá,

alguem saberia me dizer como fasso um componete para validar campos float estilo aqueles utilizados em caixa eletronico onde aparece na tela o seguinte: “0,00” e ao preenchimento do usuario, os caracteres vao andando para a esquerda.

Ex: 1º - 0,00

2º - 0,01 - o usuario digitou 1;

3º - 0,15 - o usuario digitou 5;

4º - 1,50 - o usuario digitou 0;

alguem saberia como fazer?

5 Respostas

T

Isso não é validação - é entrada de dados. Como de costume, você deseja isso para ambiente Web ou Desktop?

D

tanto faz… talvez desktop fosse melhor, pois na verdade estou usando gwt e sua programação eh pra web, mas a forma de programar eh identica a swing por exemplo.

T

Então você precisa é de um Javascript específico para esse tipo de entrada de dados.

kaabah

é web… javascript…

Codigo em javascript com certeza tem aos montes por aí!

Se for Desktop um listener no campo esperando o digito do usuario e uma mascara acho que resolviam seu problema! :idea:

Ironlynx
Então você precisa é de um Javascript específico para esse tipo de entrada de dados.
Aliás, um exemplinho:
<script LANGUAGE="JavaScript"> 

function FormataReais(fld, milSep, decSep, e) { 

var sep = 0; 

var key = ''; 

var i = j = 0; 

var len = len2 = 0; 

var strCheck = '[telefone removido]'; 

var aux = aux2 = ''; 

var whichCode = (window.Event) ? e.which : e.keyCode; 

if (whichCode == 13) return true; 

key = String.fromCharCode(whichCode);// Valor para o código da Chave 

if (strCheck.indexOf(key) == -1) return false; // Chave inválida 

len = fld.value.length; 

for(i = 0; i &lt len; i++) 

if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break; 

aux = ''; 

for(; i &lt len; i++) 

if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i); 

aux += key; 

len = aux.length; 

if (len == 0) fld.value = ''; 

if (len == 1) fld.value = '0'+ decSep + '0' + aux; 

if (len == 2) fld.value = '0'+ decSep + aux; 

if (len &gt 2) { 

aux2 = ''; 

for (j = 0, i = len - 3; i &gt= 0; i--) { 

if (j == 3) { 

aux2 += milSep; 

j = 0; 

} 

aux2 += aux.charAt(i); 

j++; 

} 

fld.value = ''; 

len2 = aux2.length; 

for (i = len2 - 1; i &gt= 0; i--) 

fld.value += aux2.charAt(i); 

fld.value += decSep + aux.substr(len - 2, len); 

} 

return false; 

}
</script>
Para usar vc faz algo do tipo: <form> Valor R$: <input type=text name=valor length=15 onKeyPress="return(FormataReais(this,'.',',',event))"> //outros campos... </form>
Criado 15 de fevereiro de 2007
Ultima resposta 16 de fev. de 2007
Respostas 5
Participantes 4