Javascript 使用复选框启用/禁用多个按钮
我是一个大菜鸟,实际上对JavaScript一无所知,所以请提前接受我的建议 我有两个按钮,我想禁用,直到一个复选框被点击。只有一个按钮似乎与我的代码工作Javascript 使用复选框启用/禁用多个按钮,javascript,html,button,Javascript,Html,Button,我是一个大菜鸟,实际上对JavaScript一无所知,所以请提前接受我的建议 我有两个按钮,我想禁用,直到一个复选框被点击。只有一个按钮似乎与我的代码工作 function terms\u已更改(termsCheckBox){ //如果已选中该复选框 如果(termsCheckBox.checked){ //将disabled属性设置为FALSE并启用按钮。 document.getElementById(“submit_button2”).disabled=false; }否则{ //否则,
function terms\u已更改(termsCheckBox){
//如果已选中该复选框
如果(termsCheckBox.checked){
//将disabled属性设置为FALSE并启用按钮。
document.getElementById(“submit_button2”).disabled=false;
}否则{
//否则,请禁用“提交”按钮。
document.getElementById(“submit_button2”).disabled=true;
}
}
功能术语\u已更改(术语列表框){
//如果已选中该复选框
如果(termsCheckBox.checked){
//将disabled属性设置为FALSE并启用按钮。
document.getElementById(“测试”).disabled=false;
}否则{
//否则,请禁用“提交”按钮。
document.getElementById(“test”).disabled=true;
}
}
我理解
开始第一次测试
开始第二次测试
您定义了两次函数。在JavaScript中,如果以这种方式定义,则第二个定义将覆盖原始定义
请尝试以下操作:
//只定义一次
const terms\u changed=termsCheckBox=>{
document.getElementById(“submit_button1”).disabled=!termsCheckBox.checked;
document.getElementById(“submit_button2”).disabled=!termsCheckBox.checked;
}
const terms=document.getElementById('terms_和_条件');
//最初使用传递的项和条件输入调用函数
条款变更(条款)代码>
我理解
开始第一次测试
开始第二次测试
您创建了两个同名的函数,这是覆盖错误的第一个函数
function terms\u已更改(termsCheckBox){
//如果已选中该复选框
如果(termsCheckBox.checked){
//将disabled属性设置为FALSE并启用按钮。
document.getElementById(“submit_button2”).disabled=false;
document.getElementById(“测试”).disabled=false
}否则{
//否则,请禁用“提交”按钮。
document.getElementById(“submit_button2”).disabled=true;
document.getElementById(“test”).disabled=true;
}
}
我理解
开始第一次测试
开始第二次测试
您不希望使用两个函数,并将其简化为以下内容
<form action="#" method="post">
<div>
<label for="check">Check after test it</label>
<input type="checkbox" id="check" />
</div>
<div>
<button class="test-btn" type="submit" disabled>Test - 1</button>
<button class="test-btn" type="submit" disabled>Test - 2</button>
</div>
</form>
<script>
var check_input = document.getElementById('check');
var test_btns = document.querySelectorAll('.test-btn');
check_input.addEventListener("click", (e) => {
if (check_input.checked === true) {
test_btns.forEach((btn) => {
btn.disabled = false;
});
}else{
test_btns.forEach((btn) => {
btn.disabled = true;
});
}
});
</script>
测试后检查它
测试-1
测试-2
var check_input=document.getElementById('check');
var test_btns=document.queryselectoral('.test btn');
检查_input.addEventListener(“单击”,(e)=>{
if(check_input.checked==true){
每个测试的btn((btn)=>{
btn.disabled=false;
});
}否则{
每个测试的btn((btn)=>{
btn.disabled=true;
});
}
});