Foros del Web » Programando para Internet » Javascript »

Array checkBox desabilitar/habilitar segun corresponda

Estas en el tema de Array checkBox desabilitar/habilitar segun corresponda en el foro de Javascript en Foros del Web. Hola amigos la verdad no se mucho de javascript y estoy intentando realizar lo que les voy a comentar y no he podido hacerlo, por ...
  #1 (permalink)  
Antiguo 16/10/2010, 08:48
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
Puntos: 1
Array checkBox desabilitar/habilitar segun corresponda

Hola amigos la verdad no se mucho de javascript y estoy intentando realizar lo que les voy a comentar y no he podido hacerlo, por ese motivo solicito su ayuda.

La idea basica de como hacer esto lo tengo y lo he realizado en otras oportunidades pero como ahora viene de una consultar y los campos son array es decir tengo un input que se genera automaticamente dependiendo del resultado de una consulta y tiene como nombre name="porcentaje[]" no se como identificarlos, he probado con algunas soluciones que encontre paro no lo logro hacer.


Código HTML:
<form name="miForm" id=" miForm " method="post">
      	
            <table width="500">
               <thead>
                 <tr>
                    <th width="70" align="center">Porcentaje</th>
        	       <th width="175" align="center">Categoría</th>
                    <th width="70" align="center">Eliminar</th>
                    <th width="70" align="center">Activar</th>
                 </tr>
               </thead>

                <?php
	    // digamos que realize la consulta y los puse en arrayCandidatos.
                for($i=0; $i < arrayCandidatos->cantidad(); $i++){
                    
                    $candidato =  arrayCandidatos ->retornar($i);
               ?>
              <tbody>
              <tr>
                        <td align="center">
                          <input name="porcentaje[]" id="porcentaje[]" type="text" id="textIdUsuario" size="8"  />
                        </td>
                        
                        <td width="178" align="center">
                            <select name="listCategorias[]" id="listCategorias[] " onchange=”FUNCION QUE NECESITO”>
                                <option value="1">Categoria1</option>
                                <option value="2">Categoria2</option>
                                <option value="3">Categoria3</option>
                            </select>
                        </td>
                        <td align="center">


                        <td align="center">
                            <input name="idsEliminar[]" id="idsEliminar[]" type="checkbox"  onClick="FUNCION NECESITO” value="aca vendria id del usuario”>" />
                        </td>


                        

<td align="center">
                            <input name="idsProcesar[]" id="idsProcesar[]" type="checkbox"  onClick="FUNCION NECESITO” value="aca un indice por regla de negocio" />
                        </td>
                      </tr>
                    <?php
                    }

                    ?>
                    </tbody>
         		</table>
            </form> 
la validacion que tengo que realizar es la siguiente:
1- El usuario no puede chequear las dos Opciones de los checkbox es decir o ELIMINA o PROCESA, pero mi complicacion es que como es un array, si hace click en el quinto usuario en la checkbox PROCESAR, deberia desabilitar checkbox ELIMINAR del quinto usuario ... y asi con cada fila del formulario.
2- en el SELECT Categoria, si seleccion la categoria 1 para el usuario 3, debe introducir un procentaje a mano en el input PROCENTAJE para el usuario 3, pero si seleccion la Categoria 2 o 3 para el usuario 3 no debe introducir nada, osea que tendria que desabilitar el input para el usuario 3... y asi con cada fila del formulario.

Yo sabria como realizar esto si no fuera porque son Array los elementos, asique mi duda es basicamente como identifico los elemente, es decir cuales pertenecen al primer usuario, cuales al segundo.. como identifico la posicion dentro del array con javascript para realizar los diseables segun correnponda.

Bueno cualquier ayuda sera muy bienvenida y desde ya gracias por tomarte el tiempo de leer mi post.

Abrazo.

NicoStone.
  #2 (permalink)  
Antiguo 16/10/2010, 16:35
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Array checkBox desabilitar/habilitar segun corresponda

Hola:

De lo que creo que he entendido de las preguntas, la número 0, o sea identificar un campo co name porcentaje[]... simplemente debes referenciarlo como cadena entrecorchetada...

document.forms.miform["porcentaje[]"]...

Sobre lo de una opciçon u otra... quizá debas usar en vez de checks, unos radios (y no necesitas javascript)

La otra cosa, creo que hay algo en nuestras FAQs.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 17/10/2010, 17:20
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Array checkBox desabilitar/habilitar segun corresponda

Muchas Gracias por tu ayuda caricatos lo he podido solucionar... gracias a la punta que me diste.

Aca va la solucion:
el CODIGO JAVASCRIPT
Código:
function deshabilitarInputs(elemento,id){
    cual = 'porcentaje[]';
    f= document.forms.miForm;
    if(elemento.value > 1){
        f[cual][id].disabled=true;
       
    }else{
        f[cual][id].disabled=false;
        
    }
}
la variable $i que ven en el codigo es la del For que utilizo para armar dinamicamente el formulario
Código HTML:
<select name="listCategorias[]" id="listCategorias[]" onchange="deshabilitarInputs(this,<?php echo $i; ?>);" >
         <option value="1">Categoria1</option>
         <option value="50">Categoria2</option>
         <option value="100">Categoria3</option>
</select> 
Muchas gracias caricatos

Saludos.

NicoStone.

Etiquetas: checkbox
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 18:31.