Foros del Web » Programando para Internet » Javascript »

Problema al "combinar" distintos Habilitar y Deshabilitar

Estas en el tema de Problema al "combinar" distintos Habilitar y Deshabilitar en el foro de Javascript en Foros del Web. Hola. Será un poco extenso mi tema pero es para que se entienda mediante los ejemplos. Mi idea principal es, para una búsqueda determinada, habilitar ...
  #1 (permalink)  
Antiguo 28/11/2008, 09:05
Avatar de Hayi  
Fecha de Ingreso: febrero-2002
Ubicación: Santa Fe - Santa Fe
Mensajes: 121
Antigüedad: 22 años, 2 meses
Puntos: 3
Pregunta Problema al "combinar" distintos Habilitar y Deshabilitar

Hola. Será un poco extenso mi tema pero es para que se entienda mediante los ejemplos. Mi idea principal es, para una búsqueda determinada, habilitar las opciones para dicha búsqueda.

Ésta forma funciona perfecto: según el RadioButton que se elija, habilita el método de la búsqueda (en este caso, Habilita tanto el campo Texto como el Botón).

Cita:
<HTML>
<HEAD>
<SCRIPT TYPE="text/javascript">
function habilitar(parametro) {
seleccion1 = 2;
seleccion2 = 2;
for (i=0; i<seleccion1; i++)
document.forms[0]['texto'+i].disabled = (parametro.value != i);
for (j=0; j<seleccion2; j++)
document.forms[0]['boton'+j].disabled = (parametro.value != j);
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="formBuscar" METHOD="post" ACTION="buscar.php" AUTOCOMPLETE="off">
<INPUT TYPE="radio" NAME="radio1" VALUE="0" onClick="habilitar(this)">
Por NOMBRE<INPUT TYPE="text" NAME="texto0" WIDTH="100" DISABLED="disabled">
<INPUT TYPE="submit" NAME="boton0" VALUE="Buscar" DISABLED="disabled">
<BR><BR>
<INPUT TYPE="radio" NAME="radio1" VALUE="1" onClick="habilitar(this)">
Por APELLIDO<INPUT TYPE="text" NAME="texto1" WIDTH="100" DISABLED="disabled">
<INPUT TYPE="submit" NAME="boton1" VALUE="Buscar" DISABLED="disabled">
</FORM>
</BODY>
</HTML>
Ésta forma también funciona perfecto: se eloje el RadioButton y habilita los otros RadioButtons.

Cita:
<HTML>
<HEAD>
<SCRIPT TYPE="text/javascript">
function habilitar(parametro) {
formulario=parametro.formBuscar;
seleccion2 = 2;
for (i=0; cadena=formulario.radio1[i]; i++)
cadena.disabled = !parametro.checked;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="formBuscar" METHOD="post" ACTION="buscar.php" AUTOCOMPLETE="off">
<INPUT TYPE="radio" NAME="radio0" VALUE="0" onClick="habilitar2(this)">Buscar:<BR>
<INPUT TYPE="radio" NAME="radio1" VALUE="0" DISABLED="disabled">Por NOMBRE
<BR><BR>
<INPUT TYPE="radio" NAME="radio1" VALUE="1" DISABLED="disabled">Por APELLIDO
</FORM>
</BODY>
</HTML>
AHORA... mi problema se da al querer "combinar" éstos 2 métodos, es decir, al elegir un RadioButton, me habilite otros RadioButtons y a su vez éstos últimos habiliten, según se especifique, el campo Texto y el Botón (algo así como llamar a habilitar2() para que se habilite los campos de habilitar()). Perdón si resulta complicado de entender pero traté de expresarme lo mejor que pude. De todas formas, si conocen un método "más claro" para hacer ésto que quiero, será bienvenido... Saludos, gracias y disculpas por las molestias causadas...
  #2 (permalink)  
Antiguo 28/11/2008, 09:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema al "combinar" distintos Habilitar y Deshabilitar

¿Y cómo trataste de combinarlos? Porque no veo que debería causar problemas al combinarlos si ambos funcionan por separado .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 01/12/2008, 04:45
Avatar de Hayi  
Fecha de Ingreso: febrero-2002
Ubicación: Santa Fe - Santa Fe
Mensajes: 121
Antigüedad: 22 años, 2 meses
Puntos: 3
De acuerdo Respuesta: Problema al "combinar" distintos Habilitar y Deshabilitar

Hola de nuevo. David el Grande, gracias por responderme. Paso a explicar un poco, ya que investigando este fin de semana de lluvia que pasé, pude lograr lo que estaba necesitando.

Primero que nada, tengo que aclarar un pequeño error de tipeo en el 2do ejemplo: dónde dice "formulario=parametro.formBuscar;", hay que cambiarlo por "formulario=parametro.form;" (y por supuesto, lo que dice "seleccion2 = 2" no tiene efecto alguno...).

Bueno, no funcionaban al combinarlos porque lo hacía de forma incorrecta, pero les dejo aquí lo que logré: elegir entre 2 métodos de búsqueda a través de Radio Buttons que me habilitan, cada uno por separado, 2 "sub-opciones" de la misma búsqueda y que a su vez, habilitan tanto el campo Texto para ingresar dicha búsqueda y su botón correspondiente. También le agregué que si elijo una opción y después me arrepiento cambiando a la otra, "resetee" los Radio Buttons para empezar de nuevo... Espero que le sirva a alguno... Saludos y David el Grande, gracias nuevamente por la molestia de contestarme...

Cita:
<HTML>
<HEAD>
<SCRIPT TYPE="text/javascript">
function habilitarRB1(parametro) {
var r1 = document.getElementsByName('radio1');
var r2 = document.getElementsByName('radio2');
formulario=parametro.form;
i=0;
j=0;
if (formulario.radio0[0].checked) {
r2[0].checked = false;
r2[0].checked = false;
formulario.radio2[0].disabled = true;
formulario.radio2[1].disabled = true;
formulario.texto1.disabled = true;
formulario.boton1.disabled = true;
for (i<2; cadena=formulario.radio1[i]; i++)
cadena.disabled = !parametro.checked;
}
else {
r1[0].checked = false;
r1[1].checked = false;
formulario.radio1[0].disabled = true;
formulario.radio1[1].disabled = true;
formulario.texto0.disabled = true;
formulario.boton0.disabled = true;
for (j<2; cadena=formulario.radio2[j]; j++)
cadena.disabled = !parametro.checked;
}
}
function habilitarRB2(form) {
if (formulario.radio0[0].checked) {
form.texto0.disabled = false;
form.boton0.disabled = false;
}
else {
form.texto1.disabled = false;
form.boton1.disabled = false;
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="formBuscar" METHOD="post" ACTION="buscar.php" AUTOCOMPLETE="off">
<INPUT TYPE="radio" NAME="radio0" onClick="habilitarRB1(this)">Buscar Por NOMBRE<BR><BR>
<INPUT TYPE="radio" NAME="radio1" VALUE="0" DISABLED="disabled" onClick="habilitarRB2(this.form)">Exacto
<INPUT TYPE="radio" NAME="radio1" VALUE="1" DISABLED="disabled" onClick="habilitarRB2(this.form)">Comienza con...<BR><BR>
<INPUT TYPE="text" NAME="texto0" WIDTH="100" DISABLED="disabled">
<INPUT TYPE="submit" NAME="boton0" VALUE="Buscar" DISABLED="disabled">
<BR><HR WIDTH="50%" COLOR="#000000" ALIGN="left">
<INPUT TYPE="radio" NAME="radio0" onClick="habilitarRB1(this)">Buscar Por APELLIDO<BR><BR>
<INPUT TYPE="radio" NAME="radio2" VALUE="0" DISABLED="disabled" onClick="habilitarRB2(this.form)">Exacto
<INPUT TYPE="radio" NAME="radio2" VALUE="1" DISABLED="disabled" onClick="habilitarRB2(this.form)">Comienza con...
<INPUT TYPE="text" NAME="texto1" WIDTH="100" DISABLED="disabled">
<INPUT TYPE="submit" NAME="boton1" VALUE="Buscar" DISABLED="disabled">
</FORM>
</BODY>
</HTML>
PD: el problema está resuelto, así que si quieren, este post se puede cerrar, saludos y gracias de nuevo!
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 21:59.