Em nosso caso vamos evitar que o usuário digite um número com separadores de milhar, e substituir o ponto decimal "." por vírgula, para evitar problemas posteriores com o formato internacional comumente aceito.
Formulário de INPUT
O formulário contém um campo de Input com um evento para processamento das teclas APÓS serem liberadas após pressionadas:
<form
name="frm" method="post"
action="prg.asp">
<input
name="nome" id="nome"
type="text" size=10
onKeyUp="nome_onChange(this);">
<input
type="submit" value="OK">
</form>
A cada tecla liberada, é chamada a função javascript nome_onChange:
function
nome_onChange(o){
var
str = o.value;
window.status = str;
//
Teste de ponto
var
RegExp = /(\.)/;
var
ar = str.match(RegExp);
if( ar != null ) {
if( ar[1] == "."
) {
// Ponto decimal
detectado
str =
str.replace(/\./g,',');
o.value = str
}
}
//
Teste de vírgula
var
RegExp = /\,[\d]{1,}(\,)/;
var
ar = str.match(RegExp);
if( ar != null ) {
if( ar[1] == ","
) {
// Vírgula
detectada
str =
str.replace(/\,$/g,'');
o.value = str
}
}
//
Teste de caracteres estranhos
var
RegExp =
/[\d|\-|\+][\'|\"|\!|\@|\#|\$|\%|\¨|\&|\*|\(|\)|\_|\-|\+|\=|\s|\{|\}|\`|\´|\^|\~|\[|\]]/;
var
ar = str.match(RegExp);
if( ar != null ) {
// caracter detectado
str =
str.replace(/.$/g,'');
o.value = str
}
}
Esta função checa, a cada tecla liberada se foi digitada uma vírgula "," ou ponto "." decimal, fazendo a troca no momento devido.
Nenhum comentário:
Postar um comentário