Foros del Web » Programando para Internet » Javascript »

Script-valida campos no funciona

Estas en el tema de Script-valida campos no funciona en el foro de Javascript en Foros del Web. Tengo el siguiente script que valida un campo en una ASP. Si el usuario no digita el valor, al dar submit el cursor se debe ...
  #1 (permalink)  
Antiguo 02/06/2003, 13:09
 
Fecha de Ingreso: noviembre-2002
Ubicación: Casa-Trabajo
Mensajes: 60
Antigüedad: 21 años, 5 meses
Puntos: 0
Pregunta Script-valida campos no funciona

Tengo el siguiente script que valida un campo en una ASP.

Si el usuario no digita el valor, al dar submit el cursor se debe ir al campo de formulario que le toca y esperar a que el usuario digite el valor.

El problema es que al dar click en el boton de submit el cursor se ubica en el campo de formulario que le toca pero inmediatamente se activa el submit y ya no espera que se teclee el valor.

Dónde está el error? Me pueden orientar?

<form name="Datos" Action="RegSolicitud.asp" Method="POST">
...
<input TYPE="submit" VALUE="Registrar solicitud" name="Envio">
</form>

<script LANGUAGE="VBScript">
<!--
Sub Envio_Onclick

if Len(Trim(Datos.codigo_solicitante.Value)) = 0 then
MsgBox "Digite el Código Postal del solicitante",64,"Aceptar"
Datos.codigo_solicitante.Focus()
exit sub
end if

document.Datos.Submit
end sub
-->
</script>
  #2 (permalink)  
Antiguo 02/06/2003, 13:15
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
Qué tal,

no sé ahora mismo si se usa el return false en vbscript, si fuera js te faltaría eso.

De todas formas yá sabrás que la validación mediante vbscript en cliente sólo será comprendida por explorer.

Si quieres el equivalente en javascript sería algo así

<script LANGUAGE="javascript">
<!--
function verifica()
{
if (document.Datos.codigo_solicitante.Value == 0)
{
alert("Digite el Código Postal del solicitante");
document.Datos.codigo_solicitante.Focus();
return false
}
else {return true}
-->
</script>


...y a tu form le agregas....

<form name="Datos" Action="RegSolicitud.asp" Method="POST" onsubmit="return verifica()">
...
<input TYPE="submit" VALUE="Registrar solicitud" name="Envio">
</form>

  #3 (permalink)  
Antiguo 02/06/2003, 13:47
 
Fecha de Ingreso: noviembre-2002
Ubicación: Casa-Trabajo
Mensajes: 60
Antigüedad: 21 años, 5 meses
Puntos: 0
Pregunta Me manda un error...

Gracias Tunait pero me manda el siguiente error:

Se producjo un error en tiempo de ejecución
Desea depurarlo?
Línea: 18
Error: Se esperaba '}'

Que sucede?
  #4 (permalink)  
Antiguo 02/06/2003, 13:49
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
Arj! esto me pasa por hacer las cosas directamente en el textarea

<script LANGUAGE="javascript">
<!--
function verifica()
{
if (document.Datos.codigo_solicitante.Value == 0)
{
alert("Digite el Código Postal del solicitante");
document.Datos.codigo_solicitante.Focus();
return false
}
else {return true}
}
-->
</script>

faltaba la llave que te dejé en negrita
  #5 (permalink)  
Antiguo 02/06/2003, 14:03
 
Fecha de Ingreso: noviembre-2002
Ubicación: Casa-Trabajo
Mensajes: 60
Antigüedad: 21 años, 5 meses
Puntos: 0
Pregunta Todavía no...

Nuevamente gracias Tunait, ya le puse el form y el submit como dices, y le di un copy paste al script pero no valida.

Le doy submit y se va a la página "RegSolicitud.asp" sin validar.

La idea es que si el campo codigo_solicitante va sin valor no deje que pase el submit.

Cómo ves?
  #6 (permalink)  
Antiguo 02/06/2003, 14:12
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
A ver qué puse mal, deja que lo pruebe y te digo

------------------------------------------ más tarde.... -----------------------------------------------------

Bueno, se me habían escapado un par de detalles, como el 0 en la condición y quitar algunas mayúsculas.

Yá funciona, mira

<script LANGUAGE="javascript">
<!--
function verifica()
{
if (document.Datos.codigo_solicitante.value == "")
{
alert("Digite el Código Postal del solicitante");
document.Datos.codigo_solicitante.focus();
return false
}
else {return true}
}
-->
</script>

Por cierto, con que haya un sólo caracter yá le vale, si es para introducir códigos postales y si prefieres pedirle que compruebe que tenga una longitud mínima habrías de cambiar esta línea

if (document.Datos.codigo_solicitante.value == "")

por esta otra

if (document.Datos.codigo_solicitante.value.length < 6)

  #7 (permalink)  
Antiguo 02/06/2003, 14:23
 
Fecha de Ingreso: noviembre-2002
Ubicación: Casa-Trabajo
Mensajes: 60
Antigüedad: 21 años, 5 meses
Puntos: 0
Funcionó perfectamente...

Te debo una Tanit.

Ahora abusando de tus conocimientos te quiero preguntar:

Cómo le puedo hacer para que valide que sea numerico el dato tecleado por el usuario y que como dices compruebe la longitud mínima...

  #8 (permalink)  
Antiguo 02/06/2003, 14:32
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
Pues así:

Código PHP:
<script LANGUAGE="javascript">
<!--
function 
verifica()
{
if (
document.Datos.codigo_solicitante.value == "")
{
alert("Digite el Código Postal del solicitante");
document.Datos.codigo_solicitante.focus();
return 
false
}
else {
    if(
isNaN(document.Datos.codigo_solicitante.value))
        {
        
alert("Por favor, introduzca solo números");
        
document.Datos.codigo_solicitante.focus();
        return 
false
        
}
    else{
    if (
document.Datos.codigo_solicitante.value.length 6)
        {
        
alert("Por favor, introduzca un código postal válido (6 caracteres)")
        
document.Datos.codigo_solicitante.focus();
        return 
false
        
}
    else{
    return 
true
    
}
    }
    }
}
-->
</script> 
ala yá deformé la tabla.

Cuentame si te sirvió
  #9 (permalink)  
Antiguo 02/06/2003, 14:49
 
Fecha de Ingreso: noviembre-2002
Ubicación: Casa-Trabajo
Mensajes: 60
Antigüedad: 21 años, 5 meses
Puntos: 0
De acuerdo Sí sirvió y bastante bien

las tres validaciones las hizo bien... mis respetos Tunait



En caso de que quiera validar otro campo como por ejemplo el nombre del solicitante (nombre_solicitante), cómo se agrega este otro else?
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




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