【问题标题】:Disable button using checkbox JavaScript使用复选框 JavaScript 禁用按钮
【发布时间】:2016-05-03 00:14:21
【问题描述】:
您好,我想在选中复选框时禁用两个按钮,但结果我必须在复选框中单击两次,希望有人可以帮助我。
谢谢。
var checker = document.getElementById('checkme');
var button = document.getElementById('button');
var button2 = document.getElementById('button2');
document.getElementById("button").disabled = true;
document.getElementById("button2").disabled = true;
checker.onchange = function() {
button.disabled !! this.checked;
button2.disabled !! this.checked;
};
【问题讨论】:
标签:
javascript
button
checkbox
【解决方案1】:
您的代码错误。您必须将复选框状态分配给按钮:
var checker = document.getElementById('checkme');
var button = document.getElementById('button');
var button2 = document.getElementById('button2');
document.getElementById("button").disabled = true;
document.getElementById("button2").disabled = true;
checker.onchange = function() {
button.disabled = !this.checked;
button2.disabled = !this.checked;
};
<input type='checkbox' id='checkme' />
<button id='button'>Button 1</button>
<button id='button2'>Button 2</button>
【解决方案2】:
只需使用此代码
<input type="checkbox" id="checkme" onChange="state_change(this.checked)">
<input type="button" id="button" value="button1">
<input type="button" id="button2" value="button2">
<script type="text/javascript">
function state_change(check){
document.getElementById('button').disabled = check;
document.getElementById('button2').disabled = check;
}
</script>
【解决方案3】:
我建议在函数内部定义'button'和'button2',否则如果你在其他地方定义'button'可能会被覆盖。
您可以直接调用 onchange 函数,而不是手动初始化禁用状态,这将使对代码的可能修改更容易,您通常希望避免在多个地方使用相同的代码。
var checker = document.getElementById('checkme');
checker.onchange = function() {
var button = document.getElementById('button');
var button2 = document.getElementById('button2');
button.disabled = !this.checked;
button2.disabled = !this.checked;
};
checker.onchange();
<input type="checkbox" id="checkme">
<button id = "button">button</button>
<button id = "button2">button2</button>
【解决方案4】:
哈哈哈谁说这个sendbtn2.disabled = !!this.checked; Hope this help you..
为什么是a = !! b,因为!!= not not and = true,然后写a=b。