Foros del Web » Programando para Internet » Javascript »

problemas con formulario

Estas en el tema de problemas con formulario en el foro de Javascript en Foros del Web. buenas a todos, q tal? paso a explicarles mi problema lo más detallado posible, para ver si alguien puede echarme una mano. tengo un formulario ...
  #1 (permalink)  
Antiguo 30/11/2004, 03:15
 
Fecha de Ingreso: noviembre-2004
Mensajes: 90
Antigüedad: 19 años, 5 meses
Puntos: 0
problemas con formulario

buenas a todos, q tal?

paso a explicarles mi problema lo más detallado posible, para ver si alguien puede echarme una mano.

tengo un formulario en el q hay q rellenar unos campos y q luego, mediante php, se manda a una dirección de correo electrónico.

la cuestión es q quiero q se rellenen obligatoriamente dos campos.

cómo hago para q, si no están rellenos uno o los dos campos, no se muestre el botón de enviar, y por consiguiente, no se pueda enviar el correo?

muchas gracias.
alf
  #2 (permalink)  
Antiguo 30/11/2004, 04:34
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años
Puntos: 2
Esta pregunta deberías hacerla en el foro de javascript. De todas formas es más sencillo que en vez de ocultar el botón lo que hagas es avisar al usuario de que debe rellenar esos campos y no hacer el submit del formulario. Me explico:
Código HTML:
<form>
<input type="text" name="campo1">
<input type="text" name="campo2">
<input type="button" value="enviar" onClick="validarFormulario()">
</form> 
la función validar formulario sería una cosa así:

Código HTML:
function validarFormulario(){
if (document.forms[0].campo1.value==""){
   alert("el campo campo1 es obligatorio");
   return;
}
if (document.forms[0].campo2.value==""){
   alert("el campo campo2 es obligatorio");
   return;
}

document.forms[0].submit();
}
__________________
¿Te apasiona el mundo del guión? El portal del guión

Última edición por living; 30/11/2004 a las 04:35
  #3 (permalink)  
Antiguo 01/12/2004, 02:30
 
Fecha de Ingreso: noviembre-2004
Mensajes: 90
Antigüedad: 19 años, 5 meses
Puntos: 0
gracias por "cambiar" mi pregunta.
la cuestión es q no quiero q me ejecute la acción del botón si no están rellenas las dos cajas de texto.
por eso decía de ocultar el botón...
si se puede hacer de otra manera, me gustaría saberla.
un saludo
  #4 (permalink)  
Antiguo 01/12/2004, 03:04
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 a todos:

Puedes ocultar el botón o ponerlo disabled (esta segunda opción me parece mejor, pero ocultando sería más o menos:

El botón:
<input type="submit" name="enviar" value="enviar" style="display: none" />

Y en los campos aprovechar un evento de pulsación de teclas (por ejemplo onkeyup)...
<input type="text" name="campo1"
onkeyup="this.form['enviar'].style.display = (this.value != '' && this.form['campo2'].value != '') ? 'block' : 'none' ">
<input type="text" name="campo2"
onkeyup="this.form['enviar'].style.display = (this.value != '' && this.form['campo1'].value != '') ? 'block' : 'none' ">

No sé si serán suficientes esos chequeos...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 01/12/2004, 12:19
 
Fecha de Ingreso: noviembre-2004
Mensajes: 90
Antigüedad: 19 años, 5 meses
Puntos: 0
gracias.
sólo una pregunta, pq has intercambiado los 'campos'?, en el 1 pones el 2 y en el 2 el 1.
  #6 (permalink)  
Antiguo 02/12/2004, 00:59
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 otra vez:

Sencillamente, el uso de this en campo1 equivale a campo1 y en campo2 equivale a campo2, entonces si se quiere controlar esos 2 campos desde ellos mismos, uno vale con this, y el otro será el que no es "uno mismo"... ... un galimatías o trabalenguas... ¡verdad!

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 07:33.