sexta-feira, 14 de outubro de 2011

Bug em Página Web com Campo Numérico

Hoje teve mais um bug estranho para eu tentar resolver: Em uma página asp.net, uma determinada caixa de texto estava com um tratamento javascript para permitir que fosse digitado apenas valores numéricos, porém ele não reconhecia as teclas do keyPad como numéricas (embora o NumLock estivesse ligado)!

Este era o bloco de código:
$("#txtendereconumero").keydown(function (event) {
// Allow only backspace and delete
if (event.keyCode == 46 || event.keyCode == 8) {
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if (event.keyCode < 48 || event.keyCode > 57) {
event.preventDefault();
}
}
});

Pesquisando um pouco a respeito do assunto, encontrei um lugar onde o autor explica bem essa situação (link).

Para resolver o meu problema, eu vi que na aplicação já estava inserido o plugin 'Masked Input' (mais detalhes neste link). Uma vez adicionado o plugin, a minha implementação ficou da seguinte maneira:

$("#txtendereconumero").mask("9999999");

O problema que veio depois é que pela definição do plugin uma mascará é exibida, e ela no momento era indesejada.
Corrigi, alterando a implementação para a seguinte:
$("#txtendereconumero").mask("9999999", {placeholder: " "});

Nenhum comentário: