Máscara JS X JFormattedTextField

4 respostas
S

Olá pessoal, há pouco tempo comecei a desenvolver aplicações web, antes eu desenvolvia aplicações utilizando swing. Bem, tenho a seguinte dúvida:

Tem como eu fazer com JavaScript algo que, em um campo do tipo “text” de um form, possua uma máscara fixa, como é no componente JFormattedTextField. Na verdade preciso de algo muito semelhante a configuração de endereço ip no windows, um textfield que já possua os pontos que dividem a numeração de um ip (###.###.###.###), porém, deve aceitar por ex. 10 . 0 .0 .255, e conforme o usuário vai digitando e tecla Enter ou TAB, ele salta entre os campos dentro do field.

Alguma idéia ou link que possa me ajudar?

Agradeço desde já as sugestões :wink:

[]´s

4 Respostas

the_negao

function mask (param, mascara) { vr = param.value; vm = mascara; vr = stripChars( vr, "/-.,() " ); vm = stripChars( vm, "/-.,()" ); tam = vr.length; if (tam > vm.length) { vr = vr.substring(0, vm.length); tam = vr.length; } temp = ""; for (i = mascara.length; i >= 0; i--) { if (mascara.substring(i, i+1) != " ") { temp += mascara.substring(i, i+1); } else { if (tam > 0) { temp += vr.substring(tam-1, tam); tam--; } else { temp += " "; } } } result = ""; for (i = mascara.length; i >= 0; i--) { result += temp.substring(i, i+1); } param.value = result; return true; } ////////////////////////////////////////////////////////////////////////////////////////// function stripChars (InString, StripThis) { OutString=""; for (Count=0; Count < InString.length; Count++) { TempChar=InString.substring (Count, Count+1); pertencente = false; for (i = 0; i < StripThis.length; i++) { if (TempChar == StripThis.substring(i, i+1)) { pertencente = true; break; } } if (!pertencente) OutString=OutString+TempChar; } return (OutString); }

Com esse código JavaScript você coloca qualquer máscara…

<input name="cep" type="text" class="text-area" id="cep"  size="18" maxlength="10" onkeyup="mask(this, '     -   ')"/>

Note que o CEP possui apenas 9 dígitos, mas o text field deve ter um tamanho máximo de 1 a mais que o necessário, ou seja, tamanho máximo de 10.

Mas para esse código no caso na máscara IP deverá ser preenchida como: 010.000.000.255

Espero ter ajudado…

Ah! Esse código faz o preenchimento correr da direita para a esquerda!

S

Obrigado “the_negao”, mas irei seguir procurando, é chato esse esquema mesmo, preciso que fique assim:

#.#.#.#

- obrigatorio numero (0-9)

_ - numero ou espaço em branco

E no caso de teclar o enter ou tab, ele pular para o próximo # dentro do field, e não outro campo do form.

Valeu :wink:

[]´s

the_negao

Quando você conseguir, se possível, disponibiliza aqui!

Tenho interesse em saber como é o funcionamento do código para tratar esses valores…

Agradeço!

S

Pode deixar, irei postar se conseguir fazer :smiley:

[]´s

Criado 14 de setembro de 2006
Ultima resposta 14 de set. de 2006
Respostas 4
Participantes 2