2017-08-24 77 views
-1

我有一個窗體有兩個按鈕和一個複選框,我想當用戶檢查複選框時,其他按鈕被禁用時啓用其中一個按鈕。因此,當表單加載一個將默認啓用,另一個禁用,但複選框已勾選後,其他變爲啓用,而默認情況下啓用的其他變爲禁用。是否有可能有一個複選框控制兩個按鈕狀態

我實際上可以爲一個按鈕但我可以做到這一點的兩個按鈕,請有javascript技能的人可以幫我在這裏謝謝。

+1

這是很好的做法,包括爲[最小的,可驗證的示例]代碼(https://stackoverflow.com/help/mcve)在你的問題。顯示你的嘗試 - 這樣我們知道我們的答案將符合你的需求。 – Beejamin

+0

只要再次想到你爲一個按鈕所做的事情,但是卻置之否定。請向我們展示您已有的代碼(即使它不工作)。 – Bergi

回答

3

你可以用JQuery做到這一點。試試下面的代碼片段:

$('document').ready(function() { 
 
    $('.checkbox_check').change(function() { 
 
    var isChecked = $('.checkbox_check').is(':checked'); 
 
    $('#btn1').prop('disabled', !isChecked); 
 
    $('#btn2').prop('disabled', isChecked); 
 
    }); 
 
})
<button type="button" id='btn1' disabled>Button 1</button> 
 
<button type="button" id='btn2'>Button 2</button> 
 
<input type="checkbox" class='checkbox_check' /> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

更新:

每下面的評論,這裏的香草JS的解決方案:

function toggleDisabled() { 
 
    var isChecked = document.getElementById("checkbox_check").checked; 
 

 
    document.getElementById('btn1').disabled = !isChecked; 
 
    document.getElementById('btn2').disabled = isChecked; 
 
}
<button type="button" id="btn1" disabled>Button 1</button> 
 
<button type="button" id="btn2">Button 2</button> 
 
<input type="checkbox" id="checkbox_check" onChange="toggleDisabled()" />

+0

你可以,但你爲什麼?這比純DOM更臃腫。 – Bergi

+1

@Bergi我更新了我的答案。 –

0

你可以用香草JS實現這一

function fireChange() { 
 
    const button1 = document.getElementById('test1'); 
 
    const button2 = document.getElementById('test2'); 
 
    button1.disabled = !button1.disabled; 
 
    button2.disabled = !button2.disabled; 
 
}
<button disabled id="test1"> first button </button> 
 
<button id="test2"> second button </button> 
 
<input type="checkbox" onChange="fireChange()" />

+2

更好的是,不要總是切換,很容易搞砸,讓一個按鈕不同步,他們永遠不會回來。相反,從複選框的選中狀態中獲取禁用狀態。 – Bergi

相關問題