Foros del Web » Programando para Internet » Javascript »

Problema al desbloquear input mediante opcion de un select

Estas en el tema de Problema al desbloquear input mediante opcion de un select en el foro de Javascript en Foros del Web. Hola a todos... Jeejeje un poco largo el tìtulo... En fin.., pues resulta que tengo un select dinàmico con php, que solo deja activar un ...
  #1 (permalink)  
Antiguo 30/08/2007, 17:27
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Pregunta Problema al desbloquear input mediante opcion de un select

Hola a todos...

Jeejeje un poco largo el tìtulo...

En fin.., pues resulta que tengo un select dinàmico con php, que solo deja activar un input text si la opciòn que escogieron es la 4. Eso funciona bien, me bloquea dicho input mientras que no sea la opciòn 4...

El problema surge cuando cuando quiero mandar el formulario con dicha opciòn escogida, no me manda el formulario . Si escojo la opciòn 4 no me manda el formulario.... y ni idea de por que puede ser...

Les dejo el còdigo para ver si de pronto ustedes identifican el error...

Código HTML:
<form action="funciones/valida_envia_solicitud.php" method="post" name="form">
<tr>
<td>Tipo de servicio:</td>
<td align="left">
<select name="tipo" onchange ="otro.disabled=(this.selectedIndex!=4)">
<option value="" selected="selected">Seleccione tipo de servicio</option>
<?php
	//recorro la consulta...
	do
	{
?>
	<option value="<?php echo $row[0]?>"><?php echo $row[1]?></option>
<?php
	}while($row=mysql_fetch_array($result));
?>
</select>
</td>
</tr>
<tr>
<td align="right">Otro</td>
<td align="left"><input type="text" name="otro" disabled="disabled"/></td>
</tr>
<tr>
<td>Su solicitud:</td>
<td><textarea name="soli" cols="35" rows="6"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="enviar" type="submit" value="Enviar" onClick="return v_solici(this.form);"><input name="borrar" type="reset" value="Limpiar"></td>
</tr>
</form> 
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 31/08/2007, 04:05
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: Problema al desbloquear input mediante opcion de un select

Hola.

esto esta mal:

onClick="return v_solici(this.form);"

en ese momento: this se refiere al boton, asi que no tiene ninguna propiedad que sea form.

Para solucionarlo, llama a esa funcion en el evento onsubmit del formulario:

<form onsubmit="return v_solici(this);" ... > (ahora this se refiere ya al form)

y elimina el evento onclick del boton.



Saludos
  #3 (permalink)  
Antiguo 31/08/2007, 05:24
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
Re: Problema al desbloquear input mediante opcion de un select

Hola Carxl y wigglyUtrera
Cita:
Iniciado por wigglyUtrera Ver Mensaje
Hola.

esto esta mal:

onClick="return v_solici(this.form);"

en ese momento: this se refiere al boton, asi que no tiene ninguna propiedad que sea form.
Eso no es así. Sí es correcto el uso de this.form a un elemento de un formulario y hace referencia al formulario en donde está contenido (parent form)

Cita:
Cuando se combina con la propiedad form, se puede referir al actual formulario padre del objeto. En el siguiente ejemplo, el formulario miFormulario contiene un objeto Text y un botón. Cuando el usuario pulsa el botón, el valor del objeto Text se actualiza con el nombre del formulario. El manipulador de eventos del botón onClick utiliza this.form para referirse al formulario padre, miFormulario.

Código:
<FORM NAME="miFormulario">
Form name:<INPUT TYPE="text" NAME="texto1" VALUE="Beluga">
<P>
<INPUT NAME="botón1" TYPE="button" VALUE="Muéstame el nombre del formulario"
   onClick="this.form.texto1.value=this.form.name">
</FORM>
http://developer.mozilla.org/es/docs...speciales#this

Sin embargo estoy de acuerdo en que la llamada a la función v_solici(this.form) debe realizarse en el evento onsubmit del propio formulario si se pretende que éste se envíe o no dependiendo del valor retornado por la función. El realizar la llamada desde el botón enviará el formulario independientemente de lo que la función retorne.

He probado tu código, Carxl sin la llamada a esa función v_solici(this.form) y funciona correctamente y el envío del formulario se activa con cualquier opción seleccionada. Así que calculo que debe ser algo ajeno al código fuente que nos has dejado.

¿cuál es la función v_solici(this.form) ?

Un saludo
__________________
Javascript Códigos - Bambú difunde
  #4 (permalink)  
Antiguo 31/08/2007, 08:18
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: Problema al desbloquear input mediante opcion de un select

siempre se aprende algo por aqui.....

gracias por la rectificación tunait


Saludos
  #5 (permalink)  
Antiguo 31/08/2007, 08:51
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
Re: Problema al desbloquear input mediante opcion de un select

Siempre un placer, caballero
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 17:43.