Quiero que cuando el usuario haga clic en la casilla de verificación, la entrada del reproductor Dos se deshabilite. Mi problema es que la entrada permanece deshabilitada en ambos casos, no importa si la casilla de verificación está marcada o no.
const Initialization = (function() { p1 = ''; p2 = ''; const playerOne = document.querySelector('#player1') const playerTwo = document.querySelector('#player2') const checkAI = document.querySelector('#computer') const startButton = document.querySelector('#start') startButton.addEventListener('click', () => { p1 = Player(playerOne.value) p2 = Player(playerTwo.value) }) if (checkAI.checked = true) { playerTwo.disabled = true; } else { playerTwo.disabled = false; } return { p1, p2, } })(); <label>Computer: <input type="checkbox" id="computer"></label><br/> <input type="text" id="player1"><br/> <input type="text" id="player2"><br/> <input type="button" id="start" value="Start" />funcionó agregando un eventListener a la casilla de verificación.
checkAI.addEventListener('click',()=>{ if(checkAI.checked){ playerTwo.disabled = true; }else{ playerTwo.disabled = false; } })Si desea reaccionar ante el cambio de la casilla de verificación, debe agregar un detector de eventos en esta entrada. Por ejemplo onclick o onchange . Tenga cuidado de usar el operador de comparación en su if test checkAI.checked === true . Puede encontrar un evento JSFiddle en la entrada de la casilla de verificación
Necesita un controlador de eventos y probar la igualdad usando == o ===
Aquí hay una versión más simple.
const Initialization = function() { const Player = str => console.log(str); const playerOne = document.querySelector('#player1') const playerTwo = document.querySelector('#player2') const checkAI = document.querySelector('#computer') const startButton = document.querySelector('#start') let p1 = ''; let p2 = ''; startButton.addEventListener('click', () => { p1 = Player(playerOne.value) p2 = Player(playerTwo.value || "computer") }); checkAI.addEventListener('click', (e) => { const chk = e.target.checked; playerTwo.disabled = chk; if (chk) playerTwo.value=""; }) }; Initialization() <label>Computer: <input type="checkbox" id="computer"></label><br/> <input type="text" id="player1"><br/> <input type="text" id="player2"><br/> <input type="button" id="start" value="Start" />