JavaScript - Activar y desactivar un botón en función de si un checkbox está o no seleccionado

 
Vista:
Imágen de perfil de María de Alejandría
Val: 4
Ha disminuido su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Activar y desactivar un botón en función de si un checkbox está o no seleccionado

Publicado por María de Alejandría (2 intervenciones) el 19/05/2019 18:36:35
Saludos
Cuento una página donde los registros en una base de datos aparecen cada uno acompañado de un checkbox y al final de todo el listado un botón de "eliminar selección".

La operación de eliminar la selección se ejecuta correctamente, simplemente quiero que el botón de eliminar esté desactivado si no se selecciona al menos una opción .

Dejo el código:

Se hace una consulta a la base de datos y cada registro se muestra de esta forma:

1
echo"<td>";?><input type="checkbox"  name="personas[]" class="other" value="<?php echo $row['dni'];?> "onclick="activar()"/><?php echo "</td>";

El botón que se activa o se desactiva es el siguiente:

1
<button class="button" onClick= "return confirm('¿Eliminar datos seleccionados?')" type="submit" id="borrar"  name="borrar" disabled>borrar seleccion</button>

Y el script JS que había creado para activarlo o desactivarlo es este(no activa el botón):

1
2
3
4
5
6
7
8
9
function activar() {
    var seleccionado=document.getElementByName('personas[]');
    for(i=0;i<seleccionadoo.length;i++){
        if (seleccionado[i].checked)
        {
            document.getElementById('borrar').disabled = false;
 
        }
    }

Muchas gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Activar y desactivar un botón en función de si un checkbox está o no seleccionado

Publicado por joel (895 intervenciones) el 19/05/2019 20:05:16
Hola María, tienes un par de errores...

getElementByName no existe, es getElementsByName, ya el nombre no es un valor unico en la pagina...
En el if tienes puesto: for(i=0;i<seleccionadoo.length;i++){ y tiene que ser seleccionadoo

Te adjunto el código corregido y desmarcando el botón si deseleccionas todos...
1
2
3
4
5
6
7
8
9
10
11
function activar() {
    var seleccionado=document.getElementsByName('personas[]');
    document.getElementById('borrar').disabled = true;
    for(i=0;i<seleccionado.length;i++){
        if (seleccionado[i].checked)
        {
            document.getElementById('borrar').disabled = false;
            return;
        }
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de María de Alejandría
Val: 4
Ha disminuido su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Activar y desactivar un botón en función de si un checkbox está o no seleccionado

Publicado por María de Alejandría (2 intervenciones) el 20/05/2019 10:53:41
Muchas gracias por aclararme los errores, he visto lo que me falta gracias a la respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar