[英]Disable button using checkbox JavaScript
你好我想要在選中復選框時禁用兩個按鈕,但結果我必須在復選框中單擊兩次希望有人可以幫助我。
謝謝。
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;
};
你的代碼錯了。 您必須將復選框狀態分配給按鈕:
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>
只需使用此代碼
<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>
我建議在函數內部定義'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>
哈哈哈誰說這個sendbtn2.disabled = !!this.checked; Hope this help you.
sendbtn2.disabled = !!this.checked; Hope this help you.
。
為什么a = !! b
a = !! b
因為!! = not not和= true,然后寫a=b
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.