Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Foto:

Como colocar mascara de entrada em um controle textbox?

  • Por favor, faça o login para responder
3 respostas neste tópico

#1 asdruboows

asdruboows
  • Membros
  • 237 posts

Postado 08 outubro 2006 - 09:41

Aguém sabe como fazer isso?
É simple né?
Mas eu ainda não sei como... e o controle não reconhece o onkeypress...
Tem algum controle especial pra isso?
  • 0

#2 Juliano.net

Juliano.net

    Co-fundador Remote Park

  • Membros
  • 1.207 posts

Postado 08 outubro 2006 - 13:58

Tiago, associe sua TextBox ao código JavaScript durante o PageLoad.



mTextBox.Attributes.Add("onKeyPress","Mascara()")
  • 0

#3 lipelandim

lipelandim

    Microsoft .NET

  • Membros
  • 144 posts

Postado 09 outubro 2006 - 09:17

Tiago, associe sua TextBox ao código JavaScript durante o PageLoad.



mTextBox.Attributes.Add("onKeyPress","Mascara()")




A função máscara pode ser essa aqui!!!


Ai você coloca assim no page_load

mTextBox.Attributes.Add("onKeyPress","Mascara('NomeDoCampo', '99.999.999-9)")

PS:: esse jeito é o formato q você usa na máscara, não vai aceitar letras, só numeros, e a máscara vai colocar automaticamente....

Eu uso essa função de máscara a 4 ou 5 anos... nunca me decepcionou!

quando você coloca 99.99

ele vai 2 números, o ponto automático e mais dois números depois!

ok!!!

a função tah aqui embaixo!


function Mascara(strField, sMask) {
var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
objForm = document.forms[0];

if(document.all) { // Internet Explorer
nTecla = event.keyCode; }
else if(document.layers) { // Nestcape
nTecla = event.which;
}

if(nTecla == 39) return false;

sValue = objForm[strField].value;

// Limpa todos os caracteres de formatação que
// já estiverem no campo.
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( " ", "" );
sValue = sValue.toString().replace( ":", "" );
sValue = sValue.toString().replace( ",", "" );
sValue = sValue.toString().replace( "$", "" );
//sValue = sValue.toString().replace( "R", "" );
fldLen = sValue.length;
mskLen = sMask.length; // = 5

i = 0;
nCount = 0;
sCod = "";
mskLen = fldLen;

while (i <= mskLen) {
bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"));
bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "));
bolMask = bolMask || ((sMask.charAt(i) == ":") || (sMask.charAt(i) == "$") || (sMask.charAt(i) == "R") || (sMask.charAt(i) == ","));

if (bolMask) {
sCod += sMask.charAt(i);
mskLen++; }
else {
sCod += sValue.charAt(nCount);
nCount++;
}

i++;
}

objForm[strField].value = sCod;

if (nTecla != 8) { // backspace
if (sMask.charAt(i-1) == "9") { // apenas números...
return ((nTecla > 47) && (nTecla < 58)); }
else if (sMask.charAt(i-1) == "A") {
return ((nTecla >= 65) && (nTecla <= 90)); } // letras
else { // qualquer caracter...
return true;
} }
else {
return true;
}
}


  • 0

#4 Alex Passos

Alex Passos
  • Membros
  • 377 posts

Postado 06 maio 2007 - 14:35

Olá Lipelandim

eu não consegui usar o código que você passou... não da erro mais também não coloca a mascara no campo

eu coloquei assim:

<script language="javascript">

function Mascara(strField, sMask) {
var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
objForm = document.forms[0];

if(document.all) { // Internet Explorer
nTecla = event.keyCode; }
else if(document.layers) { // Nestcape
nTecla = event.which;
}

if(nTecla == 39) return false;

sValue = objForm[strField].value;

// Limpa todos os caracteres de formatação que
// já estiverem no campo.
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( " ", "" );
sValue = sValue.toString().replace( ":", "" );
sValue = sValue.toString().replace( ",", "" );
sValue = sValue.toString().replace( "$", "" );
//sValue = sValue.toString().replace( "R", "" );
fldLen = sValue.length;
mskLen = sMask.length; // = 5

i = 0;
nCount = 0;
sCod = "";
mskLen = fldLen;

while (i <= mskLen) {
bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"));
bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "));
bolMask = bolMask || ((sMask.charAt(i) == ":") || (sMask.charAt(i) == "$") || (sMask.charAt(i) == "R") || (sMask.charAt(i) == ","));

if (bolMask) {
sCod += sMask.charAt(i);
mskLen++; }
else {
sCod += sValue.charAt(nCount);
nCount++;
}

i++;
}

objForm[strField].value = sCod;

if (nTecla != 8) { // backspace
if (sMask.charAt(i-1) == "9") { // apenas números...
return ((nTecla > 47) && (nTecla < 58)); }
else if (sMask.charAt(i-1) == "A") {
return ((nTecla >= 65) && (nTecla <= 90)); } // letras
else { // qualquer caracter...
return true;
} }
else {
return true;
}
}

</script>


e chamei assim:

<script runat="server">

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
textbox1.Attributes.Add("onKeyPress", "Mascara('textbox1', '99.999.999-9)")
End Sub
</script>


poderia me ajudar?

obrigado
  • 0