我試圖根據複選框禁用或啓用多個輸入。我創建了一個函數來完成它,但是當我多次調用函數時。它只會改變被調用的最後一個函數。禁用或啓用多個輸入
演示 http://jsfiddle.net/SM8Nx/1/
HTML
<input type="checkbox" name="state" id="state"><br>
First name: <input type="text" name="fname" id="fnamex"><br>
Middle name: <input type="text" name="mname" id="mnamex"><br>
Last name: <input type="text" name="lname" id="lnamex"><br>
JS
function disable(action, affected) {
if (document.getElementById(action).checked === false) {
document.getElementById(affected).disabled = true;
}
document.getElementById(action).onclick = function() {
if (document.getElementById(action).checked === true) {
document.getElementById(affected).disabled = false;
} else {
document.getElementById(affected).disabled = true;
}
};
}
disable("state", "fnamex");
disable("state", "lnamex");
這是因爲要覆蓋'click'事件處理程序('文件。 getElementById(action).onclick')。 – 2013-04-09 18:05:53
加上你有'行動'和'受影響'倒退。你需要使用'document.getElementById(affected)' – 2013-04-09 18:08:04
我更新你的小提琴http://jsfiddle.net/SM8Nx/3/ – Hackerman 2013-04-09 18:10:22