Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Preciso fazer uma verificação sobre o tipo (string, numérico etc) do valor informado no input, pois estou fazendo uma validação.
Fiz da seguinte forma:
HTML:
Memoria <input type="number" id="campo_memoria" />
SCRIPT:
alert(typeof($('#campo_memoria').value));
Entretanto, o retorno é "undefined".
Poderiam me explicar o porque disso e como conseguir alcançar meu objetivo?
Valeu! ;)
Olá Bruno!
Fiz da maneira que você disse, mas o retorno é sempre "string". Mesmo inserindo números...
Exato, e sempre vai ser string.
Por que vc acha que precisa testar o tipo ?
Porque esse valor faz referência à um campo do tipo inteiro no banco de dados. Nesse campo fica registrado o valor da memória RAM de cada computador no meu sistema de agenda de backups. Daí optei por fazer uma validação para o caso de o usuário informar um algo do tipo: "teste". Que por consequência, não será registrador no banco.
Não é muito eficiente.. em vez disso, coloque uma máscara que impossibilite ele de digitar letras.
Terá uma UX muito melhor.
Humm, certo. Vou pesquisar sobre! Resolvendo o problema, volto aqui para mostrar a solução.
Obrigado cara!
A unica forma de fazer isso que conheço é tentar converter o valor para os tipos existentes, exemplo:
if (val == parseFloat(val))
console.log('É float');
else if (val == parseInt(val))
console.log('É int');
else
console.log('É string');
Opa Diogo tudo bem ?
Faça como o William disse; Você pode fazer com que o usuário digite apenas números.
Tem um site aqui que vai ter ajudar a fazer ou a ter uma base de como vai ser.
No php tem is_numeric e o is_int, mas não sei se vai te ajudar no que você precisa. Acho que a melhor saida é bloquear letras e depois passar aquela string pra int.
Obrigado a todos que ajudaram. Procurei fazer o que vocês orientaram, e resolvi o problema bloqueando as teclas a partir de seus códigos. Para o campo desejado, é disponível apenas o teclado numérico e as teclas TAB, ENTER e outras irrelevantes .
Segue o script:
$('#campo_memoria').bind('keydown',function(event){
if((event.which < 96 || event.which > 105) && event.which != 144 && event.which != 13 && event.which != 8 && event.which != 9 && event.which != 17){
return false;
}
});
se vc tá usando jQuery, então é .val()
alert(typeof $('#campo_memoria').val() );