Campo numérico tipo Internet Banking
Preenche o campo numérico da direita para esquerda pemitindo sinal, formatando e limitando o tamanho
HTML
[0,2] R$
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '', false, 0, 2, event);">
<br />
[0,2] Obriga negativo
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '-', true, 0, 2, event);">
<br />
[0,2] Permite negativo
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '+-', false, 0, 2, event);">
<br />
[0,2] Permite negativo e positivo e obriga algum sinal
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '+-', true, 0, 2, event);">
<br />
<br />
[3,2] R$
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '', false, 3, 2, event);">
<br />
[3,2] Obriga negativo
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '-', true, 3, 2, event);">
<br />
[4,1] Permite negativo
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '+-', false, 4, 1, event);">
<br />
[5,4] Permite negativo e positivo e obriga algum sinal
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '+-', true, 5, 4, event);"><br />
<br />
<br />
[6,2] R$
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '', false, 6, 2, event);">
<br />
[3,0] Obriga negativo
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '-', true, 3, 0, event);">
<br />
[4,0] Permite negativo
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '+-', false, 4, 0, event);">
<br />
[5,0] Permite negativo e positivo e obriga algum sinal
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '+-', true, 5, 0, event);">
<br />
<br />
[-1,2] R$
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '', false, -1, 2, event);">
<br />
[-1,0] Obriga negativo
<input type="text" name="valor" onKeyDown="return mascaraNumerica(this, '.', ',', '-', true,...
JavaScript
function getChar(event) {
if (event.which === null) {
return event.keyCode;
} else if (event.which !== 0 && event.charCode !== 0) {
return event.which;
} else if (event.location == 3) {
if (event.keyCode == 109) //-
return 45;
if (event.keyCode == 107) //+
return 43;
if (event.keyCode == 110) //,
return 220;
return event.keyCode - 48; //números do teclado numérico
} else {
if (event.keyCode == 189) //-
return 45;
if (event.keyCode == 187 && event.shiftKey) //+
return 35;
if (event.keyCode == 188) //.
return 190;
if (event.keyCode == 190 ) //,
return 44;
return event.keyCode;
}
}
function mascaraNumerica(objTextBox, separadorMilesimo, separadorDecimal, sinais, obrigatorio, casasInteiras, casasDecimais, e) {
var sep = 0;
var key = '';
var i = 0;
var j = 0;
var len = 0;
var len2 = 0;
var strCheck = '0123456789';
var aux = '';
var aux2 = '';
var whichCode = getChar(e);
if (whichCode == 13)
return false;
if (whichCode == 9)
return true;
if (whichCode == 8 || whichCode == 46)
objTextBox.value = objTextBox.value.substr(0, objTextBox.value.length - 1);
else
key = String.fromCharCode(whichCode); // Valor para o código da Chave
if (whichCode == 190)
key = ".";
if (whichCode == 220)
key = separadorDecimal;
if (strCheck.indexOf(key) == -1 && key != separadorDecimal && sinais.indexOf(key) == -1 && !(whichCode == 8 || whichCode == 46))
return false; // Chave inválida
var sinal = '';
var campo = objTextBox.value.charAt(0);
if (obrigatorio) {
if (campo === '' || sinais.indexOf(campo) == -1)
sinal = sinais.charAt(0);
else
sinal = campo;
} else {
if (campo !== '' &&...