Foros del Web » Programando para Internet » Javascript »

Problema con un text q solo admita numeros

Estas en el tema de Problema con un text q solo admita numeros en el foro de Javascript en Foros del Web. Holas necesito saber como puedo controlar q en una caja de texto solo pueda introcucir numeros o lo caracteres q yo quiera.....en el Faq encontre ...
  #1 (permalink)  
Antiguo 03/06/2004, 11:18
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 200
Antigüedad: 20 años, 6 meses
Puntos: 0
Problema con un text q solo admita numeros

Holas necesito saber como puedo controlar q en una caja de texto solo pueda introcucir numeros o lo caracteres q yo quiera.....en el Faq encontre esto

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<script language="javascript">
<!--
function LP_data(){
var key=window.event.keyCode;//codigo de tecla.
if (key < 48 || key > 57){//si no es numero
window.event.keyCode=0;//anula la entrada de texto.
}}
-->
</script>
<basefont face=verdana size=2>
<BODY>
<form name="miForm">
<input type=text name="num" onKeypress="LP_data()"><br><br>
<input type="button" value="enviar" onClick="LP_box()">
</form>
</BODY>
</HTML>

Pero no me funciona....puede ser q falte implementar la funcion LP_box() del boton¿?....

Bueno...exactamente lo q necesito es q en un texto solo se puedan introducir
nuremos y puntos...porq es para intrducir IP's
ejem.. 192.168.2.36

entonces no quiero q puedan intrducir letras....

GRacias....

Última edición por fido85; 04/06/2004 a las 13:48 Razón: Porfavor Es muy Urgente..!!!!!
  #2 (permalink)  
Antiguo 05/06/2004, 11:55
 
Fecha de Ingreso: mayo-2004
Mensajes: 25
Antigüedad: 20 años, 5 meses
Puntos: 0
De acuerdo Validar casilla de solo datos numericos y punto

Hola fido85:

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function validar() {
// Array con todos los elementos del formulario
camposTexto = formulario.elements;
for (x=0; x < camposTexto.length; x++) {
if (camposTexto[x].value == '' && camposTexto[x].type=='text') {
alert("Debe llenar todos los campos ");
return false;
}
}

// Verifica que el campo CP sea puros numeros
var checkOK = "0123456789.";
var checkStr = formulario.cp.value;
var allValid = true;
var decPoints = 0;
var allNum = "";
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {
allValid = false;
break;
}
allNum += ch;
}
if (!allValid) {
alert("Escriba sólo dígitos en el campo CP");
formulario.cp.focus();
return (false);
}

}
//-->
</script>
</head>

<form name="formulario" method="post" onSubmit="return validar();" action="">
</form>

En este caso debes llamar el form FORMULARIO como lo muestro ya que si no lo haces no funciona. Como puedes ver en la funcion de javascript debes obtener el valor del campo que quieres verificar solo indicando el nombre del campo donde dice cp, esto funciona muy bien si te deja escribir letras pero no deja pasar al siguiente programa hasta que lo cambies.

Espero que te sirva.

gigifc
  #3 (permalink)  
Antiguo 05/06/2004, 12:14
 
Fecha de Ingreso: mayo-2004
Mensajes: 25
Antigüedad: 20 años, 5 meses
Puntos: 0
De acuerdo

Hola Fido85:

<html>
<head>
<script language="JavaScript">
function currencyFormat(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;
if (whichCode == 13) return true; // Enter
key = String.fromCharCode(whichCode); // Get key value from key code
if (strCheck.indexOf(key) == -1) return false; // Not a valid key
len = fld.value.length;
for(i = 0; i < len; i++)
if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) fld.value = '';
if (len == 1) fld.value = '0'+ decSep + '0' + aux;
if (len == 2) fld.value = '0'+ decSep + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += milSep;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
fld.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
fld.value += aux2.charAt(i);
fld.value += decSep + aux.substr(len - 2, len);
}
return false;
}
</script>
</head>
<body>
<form>
Tipee un número:
<input type="text" name="test" length="15" onKeyPress="return(currencyFormat(this,',','.',eve nt))">
</form>
</body>
</html>

Esta es otra forma pero es para usar un formato de miles y eso, yo te recomendaria que usaras tambien el SUBSTR(X,n,m), donde le diras al dato que iniciara de n, y que solo te mostrara los m numeros despues de tu inicio, esto es:

substr('MALENA',0,4) == 'MALE'

asi si se pasa de tres números puedes indicarle que utiliza una dirección erronea.

Bueno esa es la idea y espero que te sirva.

gigifc
  #4 (permalink)  
Antiguo 05/06/2004, 19:51
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 200
Antigüedad: 20 años, 6 meses
Puntos: 0
gigifc muchisimas gracias....

acabo de ver el mensaje pero son las 4 am , asi q cuando pueda lo probare...
ya avisare si me sale o no...pero ahora lo veo mas claro.

gracias
  #5 (permalink)  
Antiguo 06/06/2004, 08:16
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 200
Antigüedad: 20 años, 6 meses
Puntos: 0
jooer no me sale...

nose q hago mal pero no me va...

<html>
<head>
<title>Incidencias</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
function validar()
{
// Array con todos los elementos del formulario
camposTexto = formulario.elements;
for (x=0; x < camposTexto .length; x++)
{
if (camposTexto [x].value == '' && camposTexto [x].type=='text')
{
alert("Debe llenar todos los campos ");
return false;
}
}

// Verifica que el campo Ip sea puros numeros
var checkOK = "0123456789.";
var checkStr = formulario.Ip.value;
var allValid = true;
var decPoints = 0;
var allNum = "";
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
{
if (ch == checkOK.charAt(j))
{
break;

}
if (j == checkOK.length)
{
allValid = false;
break;
}
}
allNum += ch;
}
if (!allValid)
{
alert("Escriba sólo dígitos en el campo Ip");
formulario.Ip.focus();
return (false);
}

}
</script>
</head>
<body>
<form name="formulario" onSubmit="return validar();" action="insert.phtml" method="POST">
<li>IP *</li>
<input name="Ip" type="text">
<p align="center">
<INPUT TYPE="submit" NAME="accion" VALUE="Grabar"></center>
</p>
</form>
</body>
</html>


q rabia.... de todas formas muchas gracias!!!
  #6 (permalink)  
Antiguo 07/06/2004, 18:44
 
Fecha de Ingreso: mayo-2004
Mensajes: 25
Antigüedad: 20 años, 5 meses
Puntos: 0
Sonrisa Solo numeros

Mira le corregi algo y puse solo el codigo que necesitas todavia hay que verificar la longitud del campo que corresponda a la de una dirección IP y que no rebase esta, pero espero que con esto sea más claro y te ayude.


<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function validar() {
// Array con todos los elementos del formulario
camposTexto = formulario.elements;
for (x=0; x < camposTexto.length; x++) {
if (camposTexto[x].value == '' && camposTexto[x].type=='text') {
alert("Debe llenar todos los campos ");
return false;
}
}

// Verifica que el campo TELEFONO sea puros numeros
var checkOK = "0123456789.";
var checkStr = formulario.Ip.value;
var allValid = true;
var decPoints = 0;
var allNum = "";
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {
allValid = false;
break;
}
allNum += ch;
}
if (!allValid) {
alert("Escriba sólo dígitos en el campo IP");
formulario.Ip.focus();
return (false);
}
}
//-->
</script>
</head>

<BODY>
<form name="formulario" method=\"post\" onSubmit="return validar();" action="">
<input type=text name="Ip" size="15" maxlength="15">
<input type="submit" name="Submit" value="Aceptar">
<input type="button" value="enviar" onClick="enviar()">
</form>
</BODY>
</HTML>

Mucha suerte y estamos encontacto...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:40.