Foros del Web » Programando para Internet » Javascript »

Activar boton de envio cuando se selecciona una opcion de un campo select

Estas en el tema de Activar boton de envio cuando se selecciona una opcion de un campo select en el foro de Javascript en Foros del Web. Hola Necesito saber si hay alguna manera y como se pude hacer, el activar el boton enviar de un formulario solo cuando se seleccione cualquier ...
  #1 (permalink)  
Antiguo 12/01/2008, 17:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 17 años, 1 mes
Puntos: 0
Activar boton de envio cuando se selecciona una opcion de un campo select

Hola

Necesito saber si hay alguna manera y como se pude hacer, el activar el boton enviar de un formulario solo cuando se seleccione cualquier opcion de un campo select, a excepcion del predeterminado.

Aqui os pongo el codigo del html

Código HTML:
<form action="" method="post" name="frm" id="frm">
  <p>
    <select name="select">
      <option value="0" selected>Predeterminado</option>
      <option value="1">Uno</option>
      <option value="2">Dos</option>
    </select>
</p>
  <p>
    <input type="submit" name="Submit" value="Enviar">
</p>
</form> 
Quiero si se pudiera claro que se activara el boton enviar cuando seleccionara por ejemplo Uno ó Dos.

Un saludo, gracias
  #2 (permalink)  
Antiguo 12/01/2008, 17:41
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 10 meses
Puntos: 1284
Re: Activar boton de envio cuando se selecciona una opcion de un campo select

Hola:

Más o menos:

<select onchange="Submit.disabled = this.value == 0"...

Y poner ese botón disabled al principio.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 12/01/2008, 18:00
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Activar boton de envio cuando se selecciona una opcion de un campo select

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Más o menos:

<select onchange="Submit.disabled = this.value == 0"...

Y poner ese botón disabled al principio.

Saludos
Hola Caricatos

Muchas gracias por tu aportación

Lo he resuelto asi variando tu idea aqui dejo el codigo que segruo que alguien le vale algun dia.

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>T&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
 function activa_boton(campo,boton){
	if (campo.value != "0"){
		boton.disabled=false;
	} else {
		boton.disabled=true;
	}
}
</script> 
</head>

<body>
<form action="" method="post" name="frm" id="frm">
  <p>
    <select name="select" onChange="activa_boton(this,this.form.boton)">
      <option value="0" selected>Predeterminado</option>
      <option value="1">Uno</option>
      <option value="2">Dos</option>
    </select>
</p>
  <p>
    <input type="submit" name="boton" id="boton" value="Enviar" disabled=true>
</p>
</form>
</body>
</html> 
Muchas gracias por la idea.

Saludos.
  #4 (permalink)  
Antiguo 13/01/2008, 01:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 10 meses
Puntos: 1284
Re: Activar boton de envio cuando se selecciona una opcion de un campo select

Hola:

Al hacer una comparación estás consultando un valor lógico o booleano, y puedes usar ese valores directamente en una asignación (hasta es más eficiente)...

Código:
if (campo.value != "0"){
	boton.disabled=false;
} else {
	boton.disabled=true;
}
Es exactamente igual a:
Código:
boton.disabled = (campo.value == "0");
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 22:37.