Foros del Web » Programando para Internet » Javascript »

habilitar campos del formulario dependiendo de un valor ingresado

Estas en el tema de habilitar campos del formulario dependiendo de un valor ingresado en el foro de Javascript en Foros del Web. Que mas amigos, les escribo esta vez porque quiero que me den una manito, les cuento el problema: Resulta que tengo un formulario que maneja ...
  #1 (permalink)  
Antiguo 01/06/2012, 12:24
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
habilitar campos del formulario dependiendo de un valor ingresado

Que mas amigos, les escribo esta vez porque quiero que me den una manito, les cuento el problema:

Resulta que tengo un formulario que maneja unos datos de actividades de navegacion de un barco, estas actividades se denominan sucesos o eventos, y ocurren durante el viaje de una embarcacion y dependiendo de estos sucesos o eventos registrados, se llena una serie de campos en el formulario, los datos del formulario son los siguientes:

numero del crucero
año
fecha
hora
evento/suceso
latitud
longitud
numero observacion
velocidad
rumbo
temperatura
nubosidad
visibilidad
beaufort
captura o pesca(yft,alb,bet,skj,otr)
codigo especie
lance


como expuse anteriormente, estos datos se van a llenar dependiendo del suceso que ocurra en el momento, los sucesos son los siguientes:

deriva = 3
mamif = 4
nav = 8
salida = 14
llegada = 15
tortuga = 17
alba = 21
ocaso = 22
inilan = 23
inirec = 24
finlan = 25
finrec = 26


estos eventos se registran en la planilla con su codigo o abreviatura en letras, en la aplicacion se registraran con su equivalente en numeros.

Lo que quiero hacer es que los campos se deshabiliten dependiendo del evento que se haya registrado, por ejemplo, para el suceso "DERIVA" se registra solo el numero de crucero, fecha, hora y evento, los demas campos quedan vacios, en cambio, para el suceso "NAV(navegar)", se ingresan el numero del crucero, fecha, hora, evento, latitud longitud, velocidad, rumbo, temperatura y factores climaticos (nubosidad, visibilidad, beaufort); los unicos datos que se llenaran para todos los eventos son Numero dle crucero, fecha, hora y evento, estos van obligatoriamente para todos, y dependiendo del evento qe ocurra se llenaran los campos asociados a dicho evento, los demas deben quedar deshabilitados. probe con la funcion switch pero nose que atributo asignarle al campo de texto, ya que el suceso se debe ingresar por teclado. Espero me puedan ayudar. Saludos
  #2 (permalink)  
Antiguo 01/06/2012, 16:16
Avatar de iukaeru  
Fecha de Ingreso: mayo-2012
Mensajes: 127
Antigüedad: 11 años, 11 meses
Puntos: 12
Respuesta: habilitar campos del formulario dependiendo de un valor ingresado

Estoy impresionado con la cantidad de código que pones para el ejemplo...

Bueno, tocará sacar de nuevo mi bola de cristal.
Borrosamente veo un código que dice más o menos así:

if (document.formulario.visibilidad.value == 18)
{
document.formulario.navegar.value = "No navegue ni por el carajo";
document.formulario.navegar.style.display = "hidden";
};

Mira si más o menos por ahí es la cosa.
  #3 (permalink)  
Antiguo 04/06/2012, 07:32
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: habilitar campos del formulario dependiendo de un valor ingresado

Que mas amigo, bueno en realidad esos son todos los codigos numericos qe se manejan en el formulario, y no todos los campos deben estar llenos, se llena una serie de camppos dependiendo del suceso ingresado. Dejame probar entonces tu codigo a ver que tal... Saludos!!

EDITADO

Amigo, aqui te dejo un ejemplo de lo que quuiero hacer, este es el codigo fuente:

Código HTML:
<script type="text/javascript">
function habilita(eve){
if (document.frm.eve.value == 3)
{
document.frm.l1.value = "true";
document.frm.l1.style.display = "hidden";
}

}
</script>

</head>

<body>
<p>&nbsp;</p>
<form id="frm" name="frm" method="post" action="">
  <p>
    evento:
  <input name="eve" type="text" id="l8"  size="5" OnChange="habilita(event)"/>
  </p>
  <p>Latitud:
    <input type="text" name="l1" id="l1" />
    Longitud:
    <input type="text" name="lo1" id="lo1"  />
  </p>
</form> 
Este es el codigo que uso, incluyendo el formulario, cuando coloco el numero me asigna e valor, pero no lo pone hidden, probe tambien colocando el .visible=true, y tampoco funciona, voy a seguir probando a ver si me sale!!!

Última edición por Bullet; 04/06/2012 a las 08:17
  #4 (permalink)  
Antiguo 04/06/2012, 21:31
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 10 meses
Puntos: 32
Respuesta: habilitar campos del formulario dependiendo de un valor ingresado

El problema es que la visibilidad se cambia en el atributo visibility no display
Código Javascript:
Ver original
  1. function habilita(eve){
  2. if (document.frm.eve.value == 3)
  3. {
  4. document.frm.l1.value = "true";
  5. document.frm.l1.style.visibility = "hidden";
  6. }
  7.  
  8. }

Saludos y suerte.
  #5 (permalink)  
Antiguo 05/06/2012, 07:31
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: habilitar campos del formulario dependiendo de un valor ingresado

Que mas amigos, bueno yo lo hice de esta forma y me resulto:

Código:
function habilita(eve){
if (document.frm.eve.value == 3)
{
//document.frm.l1.value = "no navegar";
document.frm.l1.disabled = true;
document.frm.lo1.disabled = true;
}
if (document.frm.eve.value == 8)
{
//document.frm.l1.value = "no navegar";
document.frm.l1.disabled = false;
document.frm.lo1.disabled = false;

}


}
Voy a probar el codigo que me dejaron en ultimo post a ver que tal, asi tengo dons soluciones... Un abrazo!!

Etiquetas: campos, dependiendo, formulario, funcion, habilitar
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 04:17.