Máscara em java script para aceitar somente números

17 respostas
C

Todas as máscaras que eu encontro, é do tipo return txtBoxFormat(this,‘99999999999999999999’,event); logo só aceita numeros, mas tem que inserir um número fixo de caracteres…como eu faço uma máscara que aceita 9, ou 99, ou 999 ou 99999999999999999999 ???

17 Respostas

MichelSante

Experimenta isso

var mask2 = new FieldMask("(##) ####-####");
mask2.backwards = false;
mask2.setMaskFor(document.tela4.telefone);

Abraço.

C

mas isso no jsp???}onde???

MichelSante

Esse é um codigo JavaScript que vc coloca no seu JSP.

L

carlavb ,

voce pode fazer um função para pegar o evento do teclado, aí vc compara o código ascii e verifica se é algum numero, ou então vc pode fazer uma regez simples nesse método de validação para aceitar somente digito, “\d”. Aí se validar com sucesso, vc permite a inserção do valor no campo, senão vc dá um return false e não insere nada.

seria vc declarar uma função validadora no event onkeypress do seu campo.

MichelSante

Sua JSP fica assim:

<BODY onload="load();">

<script type="text/javascript">
function load(){
        var mask2 = new FieldMask("(##) ####-####");
        mask2.backwards = false;
        mask2.setMaskFor(document.tela4.telefone);
}
</script>

<FORM name="tela4" method="post">

<input type="text" name="telefone" id="telefone" maxlength="14" />

Espero ter ajudado.

MichelSante

Este talvez seja mais facil …

<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
<!--
function somente_numero(campo){
var digits="[telefone removido]"
var campo_temp 
	for (var i=0;i<campo.value.length;i++){
		campo_temp=campo.value.substring(i,i+1) 
		if (digits.indexOf(campo_temp)==-1){
			campo.value = campo.value.substring(0,i);
		}
	}
}

-->
</script>
</head><body>
<form action="submit.asp" method="post" name="form">
<input name="numero" id="numero" onKeyUp="javascript:somente_numero(this);" value="" size=15>
</form>

</body></html>

copia e cola num txt e renomeia para a extenção html e divirta-se

F

Olá na caixa onde deseja somente numero no evento onkeypress=“return numeros(this);”

function numeros(){
        
        if (document.all) // Internet Explorer
                var tecla = event.keyCode;
        else if(document.layers) // Nestcape
                var tecla = e.which;
    
        if ((tecla > 47 && tecla < 58)) // numeros de 0 a 9
            return true;
        else {
            if (tecla != 8) // backspace
                //event.keyCode = 0;
                return false;
            else
                return true;
        }
    }

Acho que isso resolve…

C

Michel, mas esse deixa inserir letras, so as retira quando eu dou tab…
=/

C

o do fnascimento funcionouuuuuu
brigada mesmo
vc teria tb o pra aceitar so letras e numeros?brigaaaaada

F

Não entendi, para aceitar somente letras e numeros tirando simbolos ?

F

Da uma olhadinha na tabela dos valores keycodes… (table event.keyCode)
Busquei no google me retornou varios sites mas creio que esse pode te ajudar:

http://www.quirksmode.org/js/keys.html
Lá em baixo tem os eventos vc vai apertando as teclas ele vai te mostras o codigo…
Basta fazer os if com os caracteres que deseja ou não… Lembrando que os codigos é baseado em tipos ex: numeros é de 48 até 58.

Qualquer dúvida estamos ai…

peczenyj

Expressões Regulares?

F

Creio que possa utilizar expressões regulares faz sentido.

M

Javac

Ql a melhor forma de aplicar isso em jsf?

Usei o do fnascimento e n aceita letras, mas tb n aceita numeros!
tentei usar esta

function somenteNumeros(campo){

campo.value = campo.value.replace(/\D/g,"");

}

mas ele deixa eu escrever uma letra apenas e depois bloqueia. Quero q m impeça totalmente…

:wink:

jaissonduarte

Ola pessoal ressuscitando esse tópico
como faço para limitar a 4 dígitos
é que tenho que fazer uma validação de ano,
e só pode ser digitado quatro numero
valeu

Rodrigo_Sasaki

jaissonduarte:
Ola pessoal ressuscitando esse tópico
como faço para limitar a 4 dígitos
é que tenho que fazer uma validação de ano,
e só pode ser digitado quatro numero
valeu

não pode usar a propriedade maxlength ?

Criado 26 de fevereiro de 2008
Ultima resposta 25 de mai. de 2012
Respostas 17
Participantes 9