Foros del Web » Programando para Internet » Javascript »

Habilitar submit

Estas en el tema de Habilitar submit en el foro de Javascript en Foros del Web. Buenas, Tengo una caja de texto que al clickar con el ratón se abre un calendario popup en JS para seleccionar la fecha de ida, ...
  #1 (permalink)  
Antiguo 14/06/2010, 03:50
 
Fecha de Ingreso: mayo-2010
Mensajes: 51
Antigüedad: 13 años, 11 meses
Puntos: 0
Habilitar submit

Buenas,
Tengo una caja de texto que al clickar con el ratón se abre un calendario popup en JS para seleccionar la fecha de ida, la cual se muestra en el textbox.
Luego hay otro textbox donde introduzco un número de pasajeros.

La idea es que cuando ambos campos estén rellenados se habilite el botón para enviar el formulario.

Este es el código que he conseguido hacer pero no habilita el botón para continuar:
Código:
<head>
<script language="javascript" src="popcalendar.js">

function validar(formulario) {
  formulario.Siguiente.disabled = true;
    if (pasajeros.value !='') return
  formulario.Siguiente.disabled = false;
}
</script>
</head>

<body>
<form id="formulario" name="formulario" method="post" action="formulario2.php">
<label>seleccione fecha ida</label>
<h1><input name="cal_ida" type="text" id="cal_ida" onclick="popUpCalendar(this, formulario.cal_ida, 'yyyy/mm/dd');" onchange"validar(this, formulario.Siguiente);" size="10" /></h1>
<label>cuantos pasajeros?</label>
<h1><input name="pasajeros" id="pasajeros" type="text" size="20" onkeyup="validar(this, formulario.Siguiente);" /></h1>
<h1><input type="submit" value="Siguiente" disabled="disabled" /></h1>
</form>
He probado con onblur, onclick, onchange, poniendo "validar(this.formulario, 'Siguiente')" y tampoco.

Gracias de antemano.
  #2 (permalink)  
Antiguo 14/06/2010, 04:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Habilitar submit

Hola

Prueba así

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function validar(formulario) {
  5.   formulario.Siguiente.disabled = (formulario.pasajeros.value !='' && formulario.cal_ida.value !='') ? false : true;
  6. }
  7. </script>
  8. </head>
  9. <body>
  10. <form id="f" name="f" method="post" action="formulario2.php">
  11. <label>seleccione fecha ida</label>
  12. <h1><input name="cal_ida" type="text" id="cal_ida" size="10" /></h1>
  13. <label>cuantos pasajeros?</label>
  14. <h1><input name="pasajeros" id="pasajeros" type="text" size="20" onkeyup="validar(this.form);" /></h1>
  15. <h1><input type="submit" value="Siguiente" name="Siguiente" disabled="disabled" /></h1>
  16. </form>
  17. </body>
  18. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 14/06/2010, 06:19
 
Fecha de Ingreso: mayo-2010
Mensajes: 51
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Habilitar submit

Vale, la cagada partía de declarar mal la cabecera del script.

He puesto para validar primero la fecha para habilitar el textbox de pasajeros con un onblur y así me funciona, con el onchange no funciona. Es correcto hacerlo con el onblur?
  #4 (permalink)  
Antiguo 14/06/2010, 07:03
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Habilitar submit

Hola

El evento onblur es correcto. El que no podías usar era onchange puesto que lo estabas aplicando a un text

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 14/06/2010, 07:51
 
Fecha de Ingreso: mayo-2010
Mensajes: 51
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Habilitar submit

Vale muchas gracias!

Etiquetas: habilitar, submit
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 16:11.