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

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 ???

Experimenta isso

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

Abraço.

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

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

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.

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.

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="0123456789"
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

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…

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

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

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

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…

Expressões Regulares?

Creio que possa utilizar expressões regulares faz sentido.

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:

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

[quote=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 [/quote]
não pode usar a propriedade maxlength ?