我有一個窗體有兩個按鈕和一個複選框,我想當用戶檢查複選框時,其他按鈕被禁用時啓用其中一個按鈕。因此,當表單加載一個將默認啓用,另一個禁用,但複選框已勾選後,其他變爲啓用,而默認情況下啓用的其他變爲禁用。是否有可能有一個複選框控制兩個按鈕狀態
我實際上可以爲一個按鈕但我可以做到這一點的兩個按鈕,請有javascript技能的人可以幫我在這裏謝謝。
我有一個窗體有兩個按鈕和一個複選框,我想當用戶檢查複選框時,其他按鈕被禁用時啓用其中一個按鈕。因此,當表單加載一個將默認啓用,另一個禁用,但複選框已勾選後,其他變爲啓用,而默認情況下啓用的其他變爲禁用。是否有可能有一個複選框控制兩個按鈕狀態
我實際上可以爲一個按鈕但我可以做到這一點的兩個按鈕,請有javascript技能的人可以幫我在這裏謝謝。
你可以用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()" />
你可以,但你爲什麼?這比純DOM更臃腫。 – Bergi
@Bergi我更新了我的答案。 –
你可以用香草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()" />
更好的是,不要總是切換,很容易搞砸,讓一個按鈕不同步,他們永遠不會回來。相反,從複選框的選中狀態中獲取禁用狀態。 – Bergi
這是很好的做法,包括爲[最小的,可驗證的示例]代碼(https://stackoverflow.com/help/mcve)在你的問題。顯示你的嘗試 - 這樣我們知道我們的答案將符合你的需求。 – Beejamin
只要再次想到你爲一個按鈕所做的事情,但是卻置之否定。請向我們展示您已有的代碼(即使它不工作)。 – Bergi