Foros del Web » Programando para Internet » Javascript »

Ayuda con la validación de un textbox y un campo file

Estas en el tema de Ayuda con la validación de un textbox y un campo file en el foro de Javascript en Foros del Web. Saludos compañeros del foro El problema es el siguiente necesito colocar archivos a un servidor, lo hago mediante un campo file en el formulario (creo ...
  #1 (permalink)  
Antiguo 03/05/2007, 08:19
Avatar de ALUCARD81  
Fecha de Ingreso: abril-2005
Mensajes: 62
Antigüedad: 19 años
Puntos: 0
Pregunta Ayuda con la validación de un textbox y un campo file

Saludos compañeros del foro

El problema es el siguiente necesito colocar archivos a un servidor, lo hago mediante un campo file en el formulario (creo que es la única forma.. doh), hasta ahi no problem, esto lo hago con ASP, pero ese es otro tema.

Bueno el problema es que subirlo por web es moroso y a veces el proceso se interrumpe, asi que lo que hice fue habilitar dos opciones, que deberian ser excluyentes, pero no se como hacer eso con JavaScript, es que soy nuevo en eso.

La primera opción es la normal, mediante upload directo, ahi no tengo problema todo funciona como deberia, se sube el archivo y se guarda su nombre en una base de datos

La otra opción que se me ocurrio es habilitar un enlace directo por ftp, que tambien facilita la colocación, además de ser más rápido y poder verificar el proceso de subida del archivo. Pero el problema es que con este método necesito que coloquen el nombre del archivo en el campo de texto habilitado para ese fin, lo que la mayoria no hace.

Entonces se me ocurrio validar el formulario antes de enviarlo, y es ahi donde tengo problemas, por ahi encontre un código que lo que hace es verificar si todos los campo contienen datos, pero como les digo depende de la opcion que elijan siempre va quedar uno vacio, ya sea el file o el textbox.

Asi que trate de hacerlo campo por campo, pero me da errores que no entiendo.

Les mando el código que tengo por el momento

Esto lo tengo en un archivo externo funciones.js
Código:
var ftp
var directo

function validar_ftp(campo)
{
with (campo)
{
if (value==null||value=="")
{
	ftp = 0
	return false
}
else 
{
	ftp = 1
	return true
}
}
}

function validar_directo(campo)
{
with (campo)
{
if (value==null||value=="")
{
	directo = 0
	return false
}
else 
{
	directo = 1
	return true
}
}
}

function validar(campo1,campo2)
{
	validar_ftp(campo1)
	validar_directo(campo2)
	if (ftp = 0 && directo = 0)
	{
		alert("Debe seleccionar un archivo para colocar, o colocar el nombre del archivo que coloco a través del ftp")
	}
	else
	{
		document.Form.submit()
	}
}
Ahora el HTML
Código:
....
<SCRIPT language="JavaScript" SRC="xtra.js"></SCRIPT>
</HEAD>
.....
<FORM .......>
...
...
...
<INPUT NAME="File1" TYPE="file" CLASS="Forms" ID="File1" SIZE="50">
...
<INPUT NAME="NombreArchivo" TYPE="text" CLASS="Forms" size="50" MAXLENGTH="150">
....
<INPUT name="Submit" type="button" onClick="validar(document.Form.NombreArchivo,document.Form.File1)" class="Boton" value="Adicionar">
</FORM>
espero que me hayan comprendido, se reciben sugerencias, críticas, dudas y/o comentarios. Un cordial saludo
  #2 (permalink)  
Antiguo 03/05/2007, 08:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Ayuda con la validación de un textbox y un campo file

Hola:

Verás, eso de "por ahi encontre un código" es algo que te hace trabajar el doble si no es exactamente lo que quieres...

Las validaciones bien hechas deben implementarse en el tag form y no en un botón.

Si debes controlar que un file o un textbox tengan algo, puedes usar un checkbox que habilite solo uno...

Para la validación puedes decidir que campos controlar...

Bueno, para no aburrirte con reproches, te recomiendo que te pases por las FAQAs, que hay algunos validadores muy buenos...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 03/05/2007, 09:25
Avatar de ALUCARD81  
Fecha de Ingreso: abril-2005
Mensajes: 62
Antigüedad: 19 años
Puntos: 0
Gracias por los reproches

Cita:
Verás, eso de "por ahi encontre un código" es algo que te hace trabajar el doble si no es exactamente lo que quieres...
Eso es cierto, pero la idea es aprender, y eso del por ahi, para ser precisos lo encontre en las FAQS

Cita:
Las validaciones bien hechas deben implementarse en el tag form y no en un botón
Pues la verdad, no se mucho sobre eso asi que ahi no tengo más que aceptar la sugerencia humildemente

Cita:
Si debes controlar que un file o un textbox tengan algo, puedes usar un checkbox que habilite solo uno...
Intente habilitar y desabilitar los campos con option, en vez de checkbox, la verdad no se cual seria la gran diferencia, la idea que al seleccionar uno o el otro deshabilitabas, el campo file o el campo textbox, pero como te digo la validación me cancelo todo, porque yo imagine que el campo al estar deshabilitado ya no era tomado en cuenta al verificar los campos, peor pese a estar deshabilitado estaba vacio y bueno, ya no envio el formulario

Cita:
Para la validación puedes decidir que campos controlar...
Precisamente, ese es mi problema, como hago eso, cómo verifico solo los campos que necesito verificar, como ves en el codigo hice algo como esto
Código:
if (document.Form.NombreArchivo == "") { ......
pero no me funciona

Cita:
Bueno, para no aburrirte con reproches, te recomiendo que te pases por las FAQAs, que hay algunos validadores muy buenos...
En eso te doy toda la razón, quizas le di un vistazo rápido de 20 minutos, y se me quedaron colgadas varias cosas, de todas forma voy a seguir intentando a ver como lo soluciono.

Otra vez gracias por el interés, un crítica constructiva siempre es bién recibida
  #4 (permalink)  
Antiguo 03/05/2007, 12:19
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Ayuda con la validación de un textbox y un campo file

Hola:

Vamos a ver si te explico un poco más profundamente el tema... supongo que tienes intención de aprender, y yo también he pasado por ese estado, así que trataré de ayudarte...

Una validación debe tener una estructura así:

<form onsubmit="return valida(this)" >

No creo necesario poner más atributos del form.
Con esa línea tenemos un par de cosas importantes de las validaciones, el parámetro "this" indica el formulario donde se aplica esa validación, así que el método valida ya tiene la referencia principal que es el formulario, y al poner return tenemos que espera algo que también debe complementarse con un return dentro del método valida... y tanto en formularios como en enlaces (pero en el caso de los enlaces se usa onclick en vez de onsubmit) lo que se esoera es un valor lógico: true indica que pasa la validación por tanto el formulario se envía (o se realiza el enlace), y false indica que no pasa la validación y por tanto se cancela el envío.

Vamos a plantear una validación para tu campo que llamaremos archivo:

function valida(f) {
vale = f.archivo.value != "";
if (!vale) alert("debe elegir un archivo");
return vale;
}

Espero que te sirva. Si no entiendes algo, avisa.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 01:07.