Página 1 de 1

Deshabilitar CHECKBOX

NotaPublicado: 2021-09-03 14:23 @641
por seafree
¿Qué tal? Necesito deshabilitar los checkbox para que no puedan ser reelegidos y no logro terminarlo. Formo los textbox al consultar a una base de datos:

FORMACIÓN DE LA SELECCIÓN MÚLTIPLE:
print<<"html";
<div class="multipleSelection" align="left";>
<div class="selectBox"
onclick="showCheckboxes()">
<select>
<option>RELACI&Oacute;N DE ALARMAS</option>
</select>
<div class="overSelect"></div>
</div> <!-- <div class="selectBox" -->
<div id="checkBoxes">
html
while(my $ref_alarm = $sth->fetchrow_hashref()) {
($gabinete)=$ref_alarm->{'gabinete'};
($alarma)=$ref_alarm->{'descrip_alarma'};
print "<input type='checkbox' name='alarma' id='alarma' value='$alarma' onclick='alarma_sel(this.value);alarma_reg(this.value);'/>$alarma</input>";
print "<br>";
}
print "<td><div><textarea name='ver_alarmas' id='ver_alarmas' rows='4' cols='50' placeholder='ALARMAS OPERADAS....' readonly/></textarea></td>";
print "</div>"; #<!-- <div id="checkBoxes"> -->
print "</div>"; #<!-- <div class=selectBox -->

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
CON JAVASCRIPT SELECCIONO LAS OPCIONES LA CUALES SE ADICIONAN A UN TEXTBOX
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<script>
var show = true;
var salto = false;
var alarma_operada;
alarma_operada= "";

function showCheckboxes() {
var checkboxes =
document.getElementById("checkBoxes");

if (show) {
checkboxes.style.display = "block";
show = false;
} else {
checkboxes.style.display = "none";
show = true;
}
}

function alarma_sel(p_alarma) {
//Get the checkbox
var CHECKbox= p_alarma;
alert ('ESTOY SELECCCIONADA!!!! ' +CHECKbox);
document.getElementById("CHECKbox").disabled=true; //CON ESTA INSTRUCCION SE DEBE
DESHABIITAR EL CHECKBOX PARA QUE NO VUELVA A SER SELECCIONADO PERO NO SE
DESHABILITA

}


function alarma_reg(p_alarma) {
//Get the checkbox
alarma_operada+=p_alarma;
alarma_operada+= ', ';
document.getElementById("ver_alarmas").value=alarma_operada;
}
</script>

Agradeceré vuestro apoyo para continuar.
Enormes Gracias.

Re: Deshabilitar CHECKBOX

NotaPublicado: 2021-09-03 15:42 @696
por explorer
Por lo que veo en
https://www.w3schools.com/jsref/tryit.a ... _disabled2

es correcta la forma de deshabilitar los cajas de control. Lo que resta por hacer es que el usuario envíe el formulario para que tu cgi tome note de los cambios y los almacene en la base de datos.

Otra forma más elaborada es crear un evento Ajax que llame a tu cgi cada vez que el usuario des/habilita un control. Con bibliotecas como JQuery simplifica ese trabajo, pero aún más sencillo es la primera opción: que el usuario envíe el formulario con todos los cambios.

Re: Deshabilitar CHECKBOX

NotaPublicado: 2021-09-29 11:46 @532
por seafree
¿Qué tal, Explorer? Sí había un error:

print "<input type='checkbox' name='alarma' id='alarma' value='$alarma'
onclick='alarma_reg(this.value);'/>$alarma</input>";

El id siempre era alarma. Lo cambié por $alarma y ahora sí, el valor corresponde a la alarma seleccionada, PERO sigue sin poner en disable el checkbox:

function alarma_reg(alarma) {
alarma_operada+=alarma + ',';
document.getElementById("ver_alarmas").value=alarma_operada
document.getElementById("alarma").disabled = true; //NO DESHABILITA EL CHECKBOX
}

Lo más probable es que utilice el jQuery pero la instrucción de javascript es:

document.getElementById("alarma").disabled = true;

Debería desactivar el checkbox por que estoy haciendo uso del evento onclick.

Agradeceré tu aclaración porque no encuentro la razón.

Respetos, explorer.
Gracias

Re: Deshabilitar CHECKBOX

NotaPublicado: 2021-09-29 12:07 @546
por seafree
He dado algo de batalla con ésto pero ya quedó :)

Gracias.

Re: Deshabilitar CHECKBOX

NotaPublicado: 2021-09-29 13:09 @589
por explorer
¿Encontraste el fallo? ¿Cuál era? ¿Puedes poner el código arreglado? Es por completar el hilo.