Ir para conteúdo
FabianoSouza

Permitir apenas Inteiro em text box

Recommended Posts

Preciso que um campo aceite somente número, e inteiro ao digitar.

Eu tenho uma function que funciona. Porém, agora preciso criar o input dinamicamente (via Javascript, createElement e etc..). Aí a function parou de funcionar.

Vejam a function:

function checkNumPg(evt)
  {
	var charCode = (evt.which) ? evt.which : event.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57))
	return false;
	return true;
  }

Antes, eu chamava essa function no evento keypress do text box.

 

... "onkeypress"="return checkNumPg(evt)"..

 

Agora, como preciso criar o campo dinamicamente, ficou assim:

	  var inpTxtSaltarPg = criaDOM({elem:'INPUT', alvo:dvSaltarPg})
		inpTxtSaltarPg.setAttribute('type','TEXT');
		inpTxtSaltarPg.classList.add('mini')
		inpTxtSaltarPg.setAttribute('placeholder','000')
		inpTxtSaltarPg.setAttribute('id','jump')

inpTxtSaltarPg.addEventListener('keypress', function(event) {
		checkNumPg(event)
		})

 Mesmo chamando "return checkNumPg(event)" no momento de criar o campo pelo DOM, não funciona mais.

 

Podem me ajudar?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifica se o contexto é interger

https://github.com/Spell-Master/sm-web/blob/master/javascript/jsd/js-default.js#L453

Porém o valor de um input é sempre string mesmo que sejam numeros, ou seja não passa pelo filtro da função.

 

Outra alternativa é remover o que não é um numero.

<script src="js-default.js" type="text/javascript"></script>

<div id="exemplo"></div>
<script>
    var criar = jsd.create({
        tagName: 'input',
        type: 'text',
        placeholder: '000',
        id: 'jump',
        classList: 'mini'
    });
    jsd('#exemplo').append(criar);

    jsd(criar).keyup(function (e) {
        this.value = this.value.replace(/\D/g, '');
    });
</script>

 

Citar

Obs.: A biblioteca jsd do arquivo js-default.js apresenta simplificação nos meios de uso do javacript, essa biblioteca é de minha autoria mesmo visando agilizar processos de desenvolvimento.

Visivelmente se nota todos termos abordados pelo javascript convencional.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.