Foros del Web » Programando para Internet » Javascript »

Validar solo dos campos de un formulario

Estas en el tema de Validar solo dos campos de un formulario en el foro de Javascript en Foros del Web. Muy wenas a tod@s, tengo el siguiente problema: tengo una página con un formulario para que los usuarios puedan subir archivos al servidor y necesito ...
  #1 (permalink)  
Antiguo 11/06/2004, 01:06
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Validar solo dos campos de un formulario

Muy wenas a tod@s, tengo el siguiente problema: tengo una página con un formulario para que los usuarios puedan subir archivos al servidor y necesito comprobar que dos de esos campos no están en blanco (un textarea y un select al que le he puesto la primera opcion en blanco y las demas opciones se sacan d una BBDD con asp), los demás si que se pueden dejar en blanco. He buscado algunos ejemplo de validación pero eran para comprobar todos los campos. Os dejo el código por si sirve para algo. Los campos a validar son "seccion" y "title"

Código PHP:
<html>
<
head>
<
title>Insertar Archivo</title>
</
head>
<
body text="#5E82AB" link="#5E82AB" alink="#5E82AB" vlink="#5E82AB" background="logo.png" bgcolor="#FFF3DD">
<
form action="Subir_Fich.asp" method="post" enctype="multipart/form-data">
  <
div align="center"
    <
font face="Arial, Helvética, sans-serif" size="3"><b>
    
Subir documento</b></font>
    <
br><br>
    <
table width="69%">
      <
tr
        <
td><font face="Arial, Helvética, sans-serif" size="2">
          <
div align="right"><b>Archivo</b></div></font>
        </
td>
        <
td
          <
input type="file" name="fichero" size="20">
        </
td>
      </
tr>
      <
tr
        <
td height="25"> <font face="Arial, Helvética, sans-serif" size="2">
          <
div align="right"><b>Secci&oacute;n</b></div></font>
        </
td>
        <
td height="25"
          <
p
            <
select name="seccion">
              <
option value=" " selected> </option>
              <%
While (
NOT Recordset1.EOF)
%>
              <
option value="<%=(Recordset1.Fields.Item("CodSeccion").Value)%>" ><%=(Recordset1.Fields.Item("NombreSeccion").Value)%></option>
              <%
  
Recordset1.MoveNext()
Wend
If (Recordset1.CursorType 0Then
  Recordset1
.MoveFirst
Else
  
Recordset1.Requery
End 
If
%>
            </
select>
          </
p>
          </
td>
      </
tr>
      <
tr
        <
td> <font face="Arial, Helvética, sans-serif" size="2">
          <
div align="right"><b>T&iacute;tulo Documento</b></div>
          </
font>
        </
td>
        <
td
          <
input type="text" name="title">
        </
td>
      </
tr>
      <
tr
        <
td> <font face="Arial, Helvética, sans-serif" size="2">
          <
div align="right"><b>Descripci&oacute;n</b></div></font>
        </
td>
        <
td
          <
input type="text" name="description">
        </
td>
      </
tr>
      <
tr
        <
td> <font face="Arial, Helvética, sans-serif" size="2">
          <
div align="right"><b>Fecha &Uacute;ltima Modificaci&oacute;n</b></div></font>
        </
td>
        <
td
          <
input type="text" name="fecha">
        </
td>
      </
tr>
      <
tr
        <
td colspan="2"
          <
div align="right"></div>
          <
div align="right"
            <
input type="submit" name="submit" value="Insertar">
          </
div>
        </
td>
      </
tr>
    </
table>
      <
A HREF='javascript:history.back()'><img src="back.gif" border="0"></A>
  </
div>
</
form>
<
p>&nbsp;</p>
<
p align="center">&nbsp;</p>
</
body>
</
html
Espero que alguien pueda ayudarme, muchas gracias por adelantado, salu2
__________________
Vayamos por Partes :: Jack el Destripador

Última edición por angel_dope; 11/06/2004 a las 01:37
  #2 (permalink)  
Antiguo 11/06/2004, 01:43
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años
Puntos: 2
En vez de un input type="submit" yo podría un un input type="button" como este:
<input type="button" value="Insertar" onclick="validarCampos()"> y la función de javascript a la que llama sería

function validarCampos(){
if(document.forms[0].seccion.selectedIndex==0){
alert("Seleccione una sección");
return;
}
if(document.forms[0].seccion.title.value==""){
alert("Introduzca un título");
return;
}
document.forms[0].submit();
}

Siempre se puede hacer más compleja la comprobación del título pero digamos que con esto te valdría.
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 11/06/2004, 01:51
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
PERFECTO!!! Muchísimas gracias!!! Al principio no comprobaba el título xq habia un pequeño fallo, al comprobar el título pone "if(document.forms[0].seccion.title.value==""){" sobra lo de seccion, supongo q habrá sido al copiar y pegar. Gracias de nuevo living
__________________
Vayamos por Partes :: Jack el Destripador
  #4 (permalink)  
Antiguo 11/06/2004, 01:59
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Siempre he preferido dejar el botón de submit como tal y hacer lo siguiente:

En el head:

<script>

function comprobar(){
mensaje=""
if(!document.forms[0].elements['title'].value){
mensaje+="\nPor favor, escriba un título.\n"
}
if(document.forms[0].elements['seccion'].value==' '){
mensaje+="\nPor favor, elija una sección.\n"
}
if(mensaje!=""){alert(mensaje);
return false}
}</script>

y luego en el formulario:
<form action="Subir_Fich.asp" method="post" enctype="multipart/form-data"
onsubmit="return comprobar()">

Pero ambas soluciones son válidas.

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 11/06/2004, 01:59
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Vaya! He llegado tardísimo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
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:35.