Podemos impedir con Javascript que los caracteres que el usuario teclea en un campo de texto de un formulario aparezcan.
Esto puede ser útil para campos que sólo admitar números o letras.
Por ejemplo, vamos a hacer que en un campo de texto de un formulario sólo se permitan meter números decimales del tipo 9999.99:
Necesitamos una función en JavaScript (por ejemplo):
function fieldNumber (objeto)
{
var valorCampo;
var evento_key = window.event.keyCode;
var numPosPunto = 0;
var strParteEntera = "";
var strParteDecimal = "";
var NUM_DECIMALES = 2;
switch (evento_key)
{
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
case 46:
break;
default:
window.event.keyCode = 0;
return false;
}
valorCampo = objeto.value;
if (evento_key == 46)
if (valorCampo.indexOf(".") != -1)
{
window.event.keyCode = 0;
return false;
}
/* Sólo puede teclear el número de decimales indicado en NUM_DECIMALES */
if ((numPosPunto = valorCampo.indexOf(".")) != -1)
{
strParteEntera = valorCampo.substr(0,(numPosPunto - 1));
strParteDecimal = valorCampo.substr((numPosPunto + 1), valorCampo.length)
if (strParteDecimal.length > (NUM_DECIMALES - 1))
{
window.event.keyCode = 0;
return false;
}
}
return true;
}
Tendremos una página con el formulario y la caja de texto. Tendremos que llamar a la función "fieldNumber" en el evento onkeypress:
<input type="text" name="txtImporte" onkeypress="fieldNumber(this)">
Si tenéis algun problema no dudéis en consultármelo mandándome un mail a iszori@hotmail.com
Por ejemplo, vamos a hacer que en un campo de texto de un formulario sólo se permitan meter números decimales del tipo 9999.99:
Necesitamos una función en JavaScript (por ejemplo):
function fieldNumber (objeto)
{
var valorCampo;
var evento_key = window.event.keyCode;
var numPosPunto = 0;
var strParteEntera = "";
var strParteDecimal = "";
var NUM_DECIMALES = 2;
switch (evento_key)
{
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
case 46:
break;
default:
window.event.keyCode = 0;
return false;
}
valorCampo = objeto.value;
if (evento_key == 46)
if (valorCampo.indexOf(".") != -1)
{
window.event.keyCode = 0;
return false;
}
/* Sólo puede teclear el número de decimales indicado en NUM_DECIMALES */
if ((numPosPunto = valorCampo.indexOf(".")) != -1)
{
strParteEntera = valorCampo.substr(0,(numPosPunto - 1));
strParteDecimal = valorCampo.substr((numPosPunto + 1), valorCampo.length)
if (strParteDecimal.length > (NUM_DECIMALES - 1))
{
window.event.keyCode = 0;
return false;
}
}
return true;
}
Tendremos una página con el formulario y la caja de texto. Tendremos que llamar a la función "fieldNumber" en el evento onkeypress:
<input type="text" name="txtImporte" onkeypress="fieldNumber(this)">
Si tenéis algun problema no dudéis en consultármelo mandándome un mail a iszori@hotmail.com
Ismael Zori