Foros del Web » Programando para Internet » Javascript »

problema con formulario

Estas en el tema de problema con formulario en el foro de Javascript en Foros del Web. Tengo un formulario en el q hay un campo de texto. Mi primera pregunta es como puedo hacer q en ese formulario sólo entren valores ...
  #1 (permalink)  
Antiguo 13/02/2003, 16:23
Avatar de batvampire  
Fecha de Ingreso: noviembre-2002
Mensajes: 87
Antigüedad: 21 años, 5 meses
Puntos: 0
problema con formulario

Tengo un formulario en el q hay un campo de texto.

Mi primera pregunta es como puedo hacer q en ese formulario sólo entren valores numéricos y otra cosa más,el campo de texto del formulario sólo admite un valor entre 2 y 6,como puedo hacerlo para q si el usuario por ejemplo mete el valor 8 le aparezca una ventana de error diciendo q no es válido ese número y q vuelva a meterlo de nuevo(antes de dar a enviar claro)



MUY IMPORTANTE: Necesito una solución q valga para Netscape y para el Explorer
__________________
:pirata:
  #2 (permalink)  
Antiguo 13/02/2003, 20:23
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Mira... prueba esto:

Código PHP:
<html>
<
script languaje="javascript">
function 
checa(){
    var 
tecla=window.event.keyCode;
    if (
tecla 48||tecla 56){
        
alert ("Debe ser un numero entre 0 y 8");
        
window.event.keyCode=0;
    }
}
</script>
<input type="text" onKeyPress="checa();"> 
Toma en cuenta que el 48 es el "0" y el 57 es el "9"
__________________
Manoloweb

Última edición por Manoloweb; 13/02/2003 a las 20:29
  #3 (permalink)  
Antiguo 14/02/2003, 13:20
Avatar de batvampire  
Fecha de Ingreso: noviembre-2002
Mensajes: 87
Antigüedad: 21 años, 5 meses
Puntos: 0
hola!!
muchas gracias
pero tengo el problema q ese codigo sólo me vale para el explorer ,
que puedo hacer para que funcione con el netscape?
__________________
:pirata:
  #4 (permalink)  
Antiguo 14/02/2003, 14:29
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Buenas,

a ver si te sirve algo así:


Código PHP:
<script language="javascript">
function 
verifica(que)
{
m=que.value.length
if(isNaN(que.value.charAt(m-1)) || que.value.charAt(m-1)>)
    {
    
alert('Sólo puedes meter números entre 0 y 9')
    
valor=que.value.replace(que.value.charAt(m-1),"")
    
que.value=valor
    
}        
}
</script> 
Y en el campo en cuestión:


<form name="form1" method="post" action="">
<input type="text" name="pepe" onKeyUp="verifica(this)">
<input type="submit" name="Submit" value="Enviar" >
</form>

  #5 (permalink)  
Antiguo 14/02/2003, 15:23
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Bueno Bat, creo que esto soluciona tu problema.

Saludos!
__________________
Manoloweb
  #6 (permalink)  
Antiguo 15/02/2003, 07:09
Avatar de batvampire  
Fecha de Ingreso: noviembre-2002
Mensajes: 87
Antigüedad: 21 años, 5 meses
Puntos: 0
Sonrisa Me viene muy bien pero tengo otro problemin

Gracias por el cable,pero ahora me surge otro problema:

Como podría modificar el código q me has dado para q me permitiera entrar el signo menos,puesto q tmb deben meter números negativos.Y además otra cosa, q me deje entrar sólo números entre el 6 y el 25 por ejemplo.

Gracias de nuevo,y espero q no me pegueis por ser tan pesado,es q de JavaScript ando pez,lo mio es el PHP
__________________
:pirata:
  #7 (permalink)  
Antiguo 16/02/2003, 15:35
Avatar de batvampire  
Fecha de Ingreso: noviembre-2002
Mensajes: 87
Antigüedad: 21 años, 5 meses
Puntos: 0
hola de nuevo

he estado haciendo unos experimentos con un amigo q se supone q controla JavaScript y creo q lo q os he propuesto no se puede hacer,seguire investigando
__________________
:pirata:
  #8 (permalink)  
Antiguo 16/02/2003, 16:47
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola batvampire:

Basándome en un código de JavierB de otro tema, hice unos arreglillos y funciona en netscape y explorer, para controlar la entrada de números entre 0 y 6... viendo el código será fácil adaptarlo:

<script>
function validar(texto, e) {
if (navigator.appName == "Netscape") tecla = e.which;
else tecla = e.keyCode;
if (tecla > 47 && tecla < 55) return true;
if (tecla == 0 || tecla == 8) return true;
return false;
}
</script>
...
<input type=text value="" onkeypress= "return validar(this.value, event)">

Saludos
  #9 (permalink)  
Antiguo 17/02/2003, 06:10
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola de nuevo,

bueno la verdad es que no eres claro en cuanto a tu pregunta. Primero comentas de introdicir valores negativos y luego hablas de entrar sólo valores entre 6 y 25 (eso es todo positivo y no aceptaría negativos)

Así que he "supuesto" que te refieres a introducir números entre 6 y 25 negativos y positivos, es decir, entre -25 y -6 y entre 6 y 25.

A ver si te sirve esto:

Código PHP:
<script language="javascript">
var 
lar=2
var maxPo 25
var minPo 6
var maxNe =-6
var minNe =-25
function verifica2(que)
{
if(
que.value == ""){return true}
else{
cifra=new Number(que.value)
if(
cifra 0)
    {
    if(
cifra minNe || cifra maxNe)
        {
        
alert('Sólo puedes usar números entre -6 y -25')
        
que.value=""
        
}
    }
else{
    if(
cifra minPo || cifra maxPo)
        {
        
alert('Sólo puedes usar números entre 6 y 25')
        
que.value=""
        
}
    }
}
}
function 
verifica(que)
{
m=que.value.length
if(isNaN(que.value.charAt(m-1)))
    {
    if((
m==1) && (que.value.charAt(0) != "-"))
        {
        
valor=que.value.replace(que.value.charAt(m-1),"")
           
que.value=valor
        lar 
2
        
}
    }
if(
que.value.charAt(0) == "-"){lar=3}
if(
lar)
    {
    
valor=que.value.replace(que.value.charAt(m-1),"")
       
que.value=valor
    
}
}
</script> 
Y a tu campo de formulario:

<form name="form1" method="post" action="">
<input type="text" name="pepe" onKeyUp="verifica(this)" onBlur="verifica2(this)">
<input type="submit" name="Submit" value="Enviar" >

Ala, yá me contarás
  #10 (permalink)  
Antiguo 17/02/2003, 14:30
Avatar de batvampire  
Fecha de Ingreso: noviembre-2002
Mensajes: 87
Antigüedad: 21 años, 5 meses
Puntos: 0
Regreso de nuevo

Antes de nada y de q me mandes a la mierda directamente por impertinente y pesado quiero decirte q te agradezco la ayuda y q esta curradisimo,pero he encontrado 3problemillas ,te cuento:

1)Sólo se pueden meter 3 números y no se puede meter gran precision,por ejemplo no puedo meter 24,125 q digamos q seria el caso extremo(3 decimales)

2)Si tengo el campo de texto vacio no te debe dejar mandar datos y en ese script si te deja


3)Metiendo el primer número luego ya te deja meter letras o lo q sea,es decir,podrias mandar el 5p por ejemplo



Y eso solo ,ya te digo q siento ser tan pelma y q ya me lo mirare a ver si lo soluciono yo porque me parece q me stoy pasando un poco con las duditas
__________________
:pirata:
  #11 (permalink)  
Antiguo 18/02/2003, 07:20
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Tranquilo, aún no te mando a paseo. Sólo te agarro del cuello y aprieto un poco jejé

Amos a ver si te vale así:

Código PHP:
<script language="javascript">
var 
neg=false
var maxPo 25
var minPo 6
var maxNe =-6
var minNe =-25
function verifica2(que)
{
if(
que.value.charAt(0) == "-"){neg true}
else{
neg false}

if(
isNaN(que.value)){que.value=""}
if(
que.value == ""){neg=falsealert('Debes rellenar el campo');return false}
else{
    
cifra=new Number(que.value)

    if(
cifra 0)
        {
        if(
cifra minNe || cifra maxNe)
            {
            
alert('Sólo puedes usar números entre -6 y -25')
            
que.value=""
            
return false
            
}
        }
    else{
        if(
cifra minPo || cifra maxPo)
            {
            
alert('Sólo puedes usar números entre 6 y 25')
            
que.value=""
            
return false
            
}
        }
    }
}
function 
verifica(que)
{
m=que.value.length
if(isNaN(que.value.charAt(m-1)))
    {
    if(
que.value.charAt(0) == "-"){neg true}
    if((
m==1) && (que.value.charAt(0) != "-"))
        {
        
valor=que.value.replace(que.value.charAt(m-1),"")
           
que.value=valor
        neg 
false
        
}
    else
        {
        if(
!= && que.value.charAt(m-1) != "," && que.value.charAt(m-1) != ".")
            {
            
valor=que.value.replace(que.value.charAt(m-1),"")
            
que.value=valor
            
}
        if(
neg == false && && que.value.charAt(m-1) == ",")
            {
            
valor que.value.replace(/,/,".")
            
que.value=valor
            
}
        if(
neg == true && && que.value.charAt(m-1) == ",")
            {
            
valor que.value.replace(/,/,".")
            
que.value=valor
            
}
        if((
neg == true) && (que.value.charAt(1) == "," || que.value.charAt(1) == ".")) 
            {
            
valor=que.value.replace(que.value.charAt(m-1),"")
            
que.value=valor
            
}
        }
    }

}

</script> 
Y a tu formulario:

<form name="form1" method="post" action="" onSubmit="return verifica2(this.pepe)">
<input type="text" name="pepe" onKeyUp="verifica(this)" onBlur="verifica2(this)">
<input type="submit" name="button" value="Enviar" >
</form>
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 04:23.