首页 > 解决方案 > 如果复选框的值作为变量传递,getElementById 不起作用

问题描述

这是JS函数。此函数是复选框的事件处理程序。所以元素是复选框。

function updateSelect(element) {
        // this works
        document.getElementById("file_update_" + 1).disabled = !element.checked;
        // this does not works. the element.value is also 1
        document.getElementById("file_update_" + element.value).disabled = !element.checked;
}

控制台出现以下错误。

Uncaught TypeError: Cannot set property 'disabled' of null
    at updateSelect (<anonymous>:21:75)
    at HTMLInputElement.onchange (updateuser:1)

任何想法.... element.value 有什么独特之处?

标签: checkboxgetelementbyid

解决方案


在做了一些试验和错误之后,这有效

function updateSelect(element) {
     var v = parseInt(element.value, 10);
     document.getElementById("file_update_" + v).disabled = !element.checked;
}

我不知道为什么我必须这样做才能使它工作。如果有人帮助我理解它,我将不胜感激。


推荐阅读