javascript - 获取某些复选框的 ID 并禁用它们

标签 javascript html checkbox

我正在尝试获取某些复选框的 ID 并根据条件将这些框设置为禁用。但是,我在“Add:767 Uncaught TypeError: Cannot read property 'disabled' of null”上收到此错误 在 HTMLInputElement.el.addEventListener.event(添加:767)”。 为什么返回null?我不是通过 ID 获取元素吗?

这是 JS:

    var days = 0;
    const checkboxMonthElement = document.querySelectorAll('.checkboxMonth');
    const checkboxDofmElement = document.querySelectorAll('.checkboxDofM');


    var test123 = document.getElementById('#Schedule_DofMInfo_27__IsChecked');

    checkboxMonthElement.forEach(el => el.addEventListener('change', event => {

        days = 0;

        for (var i = 0; i < checkboxMonthElement.length; i++) {


            var NofD = parseInt($(checkboxMonthElement[i]).attr('data-test'));

            if (checkboxMonthElement[i].checked) {
                if (days < NofD)
                    days = NofD;
            }
        }
        console.log(days);

        if (days = 28) {
            console.log("Days is 28");
            console.log(test123);

           document.getElementById('#Schedule_DofMInfo_27__IsChecked').disabled === true;
        }





    }));

这是 HTML:

   <li class="list-group-item" style="display:inline-block">
                    <div class="checkbox-inline" id="checkboxDofM">
                        <input data-val="true" data-val-number="The field DofMID must be a number." data-val-required="The DofMID field is required." id="Schedule_DofMInfo_26__DofMID" name="Schedule.DofMInfo[26].DofMID" type="hidden" value="26" />
                        <input class="checkboxDofM" data-val="true" data-val-required="The IsChecked field is required." id="Schedule_DofMInfo_26__IsChecked" name="Schedule.DofMInfo[26].IsChecked" type="checkbox" value="true" /><input name="Schedule.DofMInfo[26].IsChecked" type="hidden" value="false" />
                        <label for="Schedule_DofMInfo_26__IsChecked">27</label>
                    </div>
                </li>
                <li class="list-group-item" style="display:inline-block">
                    <div class="checkbox-inline" id="checkboxDofM">
                        <input data-val="true" data-val-number="The field DofMID must be a number." data-val-required="The DofMID field is required." id="Schedule_DofMInfo_27__DofMID" name="Schedule.DofMInfo[27].DofMID" type="hidden" value="27" />
                        <input class="checkboxDofM" data-val="true" data-val-required="The IsChecked field is required." **id="Schedule_DofMInfo_27__IsChecked"** name="Schedule.DofMInfo[27].IsChecked" type="checkbox" value="true" /><input name="Schedule.DofMInfo[27].IsChecked" type="hidden" value="false" />
                        <label for="Schedule_DofMInfo_27__IsChecked">28</label>
                    </div>
                </li>
                <li class="list-group-item" style="display:inline-block">
                    <div class="checkbox-inline" id="checkboxDofM">
                        <input data-val="true" data-val-number="The field DofMID must be a number." data-val-required="The DofMID field is required." id="Schedule_DofMInfo_28__DofMID" name="Schedule.DofMInfo[28].DofMID" type="hidden" value="28" />
                        <input class="checkboxDofM" data-val="true" data-val-required="The IsChecked field is required." id="Schedule_DofMInfo_28__IsChecked" name="Schedule.DofMInfo[28].IsChecked" type="checkbox" value="true" /><input name="Schedule.DofMInfo[28].IsChecked" type="hidden" value="false" />
                        <label for="Schedule_DofMInfo_28__IsChecked">29</label>
                    </div>
                </li>
                <li class="list-group-item" style="display:inline-block">
                    <div class="checkbox-inline" id="checkboxDofM">
                        <input data-val="true" data-val-number="The field DofMID must be a number." data-val-required="The DofMID field is required." id="Schedule_DofMInfo_29__DofMID" name="Schedule.DofMInfo[29].DofMID" type="hidden" value="29" />
                        <input class="checkboxDofM" data-val="true" data-val-required="The IsChecked field is required." id="Schedule_DofMInfo_29__IsChecked" name="Schedule.DofMInfo[29].IsChecked" type="checkbox" value="true" /><input name="Schedule.DofMInfo[29].IsChecked" type="hidden" value="false" />
                        <label for="Schedule_DofMInfo_29__IsChecked">30</label>
                    </div>
                </li>
                <li class="list-group-item" style="display:inline-block">
                    <div class="checkbox-inline" id="checkboxDofM">
                        <input data-val="true" data-val-number="The field DofMID must be a number." data-val-required="The DofMID field is required." id="Schedule_DofMInfo_30__DofMID" name="Schedule.DofMInfo[30].DofMID" type="hidden" value="30" />
                        <input class="checkboxDofM" data-val="true" data-val-required="The IsChecked field is required." id="Schedule_DofMInfo_30__IsChecked" name="Schedule.DofMInfo[30].IsChecked" type="checkbox" value="true" /><input name="Schedule.DofMInfo[30].IsChecked" type="hidden" value="false" />
                        <label for="Schedule_DofMInfo_30__IsChecked">31</label>
                    </div>
                </li>
        </ul>
        <div class="checkbox-inline">
            <input id="checkAllDofm" name="checkAll" onclick="toggleDofM(this);" type="checkbox" value="true" /><input name="checkAll" type="hidden" value="false" />
            <label for="Select_All">Select All</label>
        </div>
    </div>
</center>

最佳答案

这是因为您在使用 getElementById 时在 ID 中包含“#”,这是不必要的,并且会导致 getElementById 查找 id 字面上包含“#”的元素。所以不要这样做

document.getElementById('#Schedule_DofMInfo_27__IsChecked')

改为这样做:

document.getElementById('Schedule_DofMInfo_27__IsChecked')

关于javascript - 获取某些复选框的 ID 并禁用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51027276/

相关文章:

javascript - 使用 Javascript 的 ISO 持续时间

javascript - 动态添加html内容时出现意外的 token 非法错误

python - PyGTK 检查按钮的标签位于左侧

android - 使用 &lt;input type ="file"上传文件(而不是 forge.file)

javascript - 给出自动选中复选框的条件

javascript - 如何使用 JavaScript 和 HTML 开发复选框表单?

javascript - 为什么我不能使用 XMLHttpRequest 从本地网络获取 JSON 文件?

javascript - JS - 创建并传递一个函数,该函数将在另一个作用域的上下文中进行评估

javascript - 将 JavaScript 对象传递给 PHP 不起作用

html - 图例不包括::之前而 h2 包括