tengo un pequeño problema con javascript que agareceria me resolvierais.
Necesito hacer que en una caja de texto solo se puedan introducir numeros. He seguido tanto el faq 37 como otros tutoriales y ejemplos.
El problema es que yo lo quiero utilizar de forma limpia y sin añadir el onKeyPress en la caja de texto, asi que utilizo este metodo:
Código PHP:
var evType='keypress';
var elm=document.getElementById('cajaTexto');
//Para compatibilidad con diferentes navegadores
if (elm.addEventListener) {
elm.addEventListener(evType, onlyNumbers, true);
}
else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, onlyNumbers);
}
else {
elm['on' + evType] = onlyNumbers;
}
function onlyNumbers(e){
var key;
if (window.event){
key = window.event.keyCode;
}
else if (e) {
key = e.which;
}
if ((key < 48 || key > 57) && key != 8 && key != 37 && key != 39 && key != 46 && key != 9){//Es letra
stopEvent(e);
//alert("letra "+key);
}else{
//alert("numero "+key);
}
}
El metodo sugerido por el faq es
Código PHP:
window.event.keyCode=0;
Código PHP:
function stopEvent(e) {
if (!e) e = window.event;
if (e.stopPropagation) {
e.stopPropagation();
} else {
e.cancelBubble = true;
}
}
Como he dicho me detecta la tecla presionada pero no consigo evitar que se introduzca en la caja, ni modificar su valor, ni nada.
Así que si se os ocurre algo os lo agradeceré eternamente.