单击 chceckbox 时切换启用和禁用 div 中的所有输入

Toggle enabled&disabled all inputs in div when chceckbox clicked

我试图删除单击复选框时在每个输入处禁用的属性。我能够打开这些输入,但在关闭它们时遇到问题。

     <div class='single-service-<?php echo $row["id"]; ?>'>
      <input type='checkbox'>
      <label><?php printf ("%s", $row["service_name"]); ?></label>
      <label>Ilość:</label><input type="number" name="quantity" value="<?php echo $row["quantity"]; ?>" placeholder='ILOŚĆ' disabled/>
      <label>Cena netto:</label><input type="number" name="net_price" value="<?php echo $row["net_price"]; ?>" placeholder='CENA NETTO' disabled/>
    </div>


    var checkboxes = document.querySelectorAll("input[type='checkbox']");

    for(var i=0; i < checkboxes.length; i++) {
      checkboxes[i].addEventListener('click', function() {
        var div = this.parentNode;
        var x = div.childNodes;
        for(y=0; y < x.length; y++) {
          x[y].disabled = false;
        }
      }, false);
    }

您应该将 x[y].disabled = false; 替换为

if(x[y].type === "number") x[y].disabled = !x[y].disabled;

或者如果您想禁用所有输入,包括您的复选框,只需使用 x[y].disabled = !x[y].disabled;