Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用复选框启用/禁用多个按钮_Javascript_Html_Button - Fatal编程技术网

Javascript 使用复选框启用/禁用多个按钮

Javascript 使用复选框启用/禁用多个按钮,javascript,html,button,Javascript,Html,Button,我是一个大菜鸟,实际上对JavaScript一无所知,所以请提前接受我的建议 我有两个按钮,我想禁用,直到一个复选框被点击。只有一个按钮似乎与我的代码工作 function terms\u已更改(termsCheckBox){ //如果已选中该复选框 如果(termsCheckBox.checked){ //将disabled属性设置为FALSE并启用按钮。 document.getElementById(“submit_button2”).disabled=false; }否则{ //否则,

我是一个大菜鸟,实际上对JavaScript一无所知,所以请提前接受我的建议

我有两个按钮,我想禁用,直到一个复选框被点击。只有一个按钮似乎与我的代码工作

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;
});
}
});