Foros del Web » Programando para Internet » Jquery »

cambiar de posicion un checkbox luego de presionar boton.

Estas en el tema de cambiar de posicion un checkbox luego de presionar boton. en el foro de Jquery en Foros del Web. tengo dos div, y un botón para mover los checkboxes que esten activados de un div al otro, pero tengo algunos problemas que relato a ...
  #1 (permalink)  
Antiguo 09/11/2015, 18:11
 
Fecha de Ingreso: octubre-2007
Mensajes: 29
Antigüedad: 17 años, 1 mes
Puntos: 0
cambiar de posicion un checkbox luego de presionar boton.

tengo dos div, y un botón para mover los checkboxes que esten activados de un div al otro, pero tengo algunos problemas que relato a continuación:
1.- Checkbox de div origen no se elimina
2.- el texto relacionado con el checkbox no pasa al nuevo div
3.- el texto relacionado en div origen no se elimina.

Código PHP:

    
$('#btn_1').click(function(){
        $(
" #habilitados .uno" ).each(function(){
            var 
$this = $(this);
            if(
$this.is(':checked')){
                
$this.clone().appendTo($("#deshabilitados"));
                
$this.remove;
            }

        });
    }); 
Código PHP:
<form id="forma_asignacion" action=''>

    <
table id="tablaValores">
        <
tr>
            <
td>
                <
input type="checkbox"  id="s1"  /> Seleccionar todos<br>
            </
td>
            <
td></td>
            <
td>
                <
input type="checkbox"  id="s2"  /> Seleccionar todos<br>
            </
td>
        </
tr>
        <
tr>
            <
td id="habilitados">
                <
input type="checkbox" class='uno' id=2   />2<br>
                <
input type="checkbox" class='uno' id=3   />3<br>
            </
td>
            <
td>
                <
input type="button" value=">>>" id="btn_1" />
                <
p></p>
                <
input type="button" value="<<<" id="btn_2" />
            </
td>
            <
td id="deshabilitados">
                <
input type="checkbox" class='uno' id=/> 1<br>
                <
input type="checkbox" class='uno' id=/> 4<br>
            </
td>
        </
tr>
    </
table>
</
form
  #2 (permalink)  
Antiguo 09/11/2015, 18:52
Avatar de siddartha23  
Fecha de Ingreso: septiembre-2013
Mensajes: 357
Antigüedad: 11 años, 2 meses
Puntos: 39
Respuesta: cambiar de posicion un checkbox luego de presionar boton.

1_ A la función remove la faltan los paréntesis ().
2_ Lo que estas clonado es el checkbox, no el string que está al costado del checkbox.
3_ En ningún momento borras el string que queda en el div habilitados.
4_ En vez de usar clone+append y luego remove() podrías usar solo append que lo va eliminar de donde esta y le va dar una nueva ubicación.
__________________
velarde23.com - Soluciones Web
  #3 (permalink)  
Antiguo 09/11/2015, 19:03
 
Fecha de Ingreso: octubre-2007
Mensajes: 29
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: cambiar de posicion un checkbox luego de presionar boton.

Cita:
Iniciado por siddartha23 Ver Mensaje
1_ A la función remove la faltan los paréntesis ().
2_ Lo que estas clonado es el checkbox, no el string que está al costado del checkbox.
3_ En ningún momento borras el string que queda en el div habilitados.
4_ En vez de usar clone+append y luego remove() podrías usar solo append que lo va eliminar de donde esta y le va dar una nueva ubicación.
Gracias Siddartha23. poniendo los () en el remove funcionó.
En cuanto a tu recomendación 4, hice la prueba quitando el remove, pero el append solo no elimina del div original.

Para el tema de los textos ya queda solucionado: lo que he hecho es poner todo dentro de un div y mover el div. queda de la siguiente forma si tienen alguna sugerencia es muy bien venida, todo sea por aprender más y mejorar.:

Código PHP:

    
var mobilizaCheckbox = function(claseclasedes){
        $(
clase " .hab" ).each(function(){
            var 
$this = $(this);
            var 
aID $this.prop("id");
            $(
clase "  #" aID " .uno" ).each(function(){
                
//var $this = $(this);
                
if($(this).is(':checked')){
                    
$this.clone().appendTo($(clasedes));
                    
//$this.remove();
                

            });
        });  
    };     
      
      
    
    $(
'#btn_1').click(function(){
        
mobilizaCheckbox("#habilitados","#deshabilitados");    
    });
    
    
    $(
'#btn_2').click(function(){
        
mobilizaCheckbox("#deshabilitados","#habilitados");    
    }); 
Código PHP:

<form id="forma_asignacion" action=''>

    <
table id="tablaValores">
        <
tr>
            <
td>
                <
input type="checkbox"  id="s1"  /> Seleccionar todos<br>
            </
td>
            <
td></td>
            <
td>
                <
input type="checkbox"  id="s2"  /> Seleccionar todos<br>
            </
td>
        </
tr>
        <
tr>
            <
td id="habilitados">
                <
div class="hab" id=><input type="checkbox" class='uno' id=2   />2<br></div>
                <
div class="hab" id=><input type="checkbox" class='uno' id=3   />3<br></div>
            </
td>
            <
td>
                <
input type="button" value=">>>" id="btn_1" />
                <
p></p>
                <
input type="button" value="<<<" id="btn_2" />
            </
td>
            <
td id="deshabilitados">
                <
div class="hab" id=><input type="checkbox" class='uno' id=1   />1<br></div>
                <
div class="hab" id=><input type="checkbox" class='uno' id=4   />4<br></div>
            </
td>
        </
tr>
    </
table>
    <
p></p>            
    <
input type="button" value="Guardar" id="btn_1" />
    <
p></p>


</
form
  #4 (permalink)  
Antiguo 09/11/2015, 19:04
 
Fecha de Ingreso: octubre-2007
Mensajes: 29
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: cambiar de posicion un checkbox luego de presionar boton.

Actualización de respuesta puesta. quitar el comentario en $this.remove();

Etiquetas: checkbox, posicion, presionar
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 03:15.