2017-02-13 123 views
0

我有3個複選框與不同的ID,複選框1,複選框2和複選框3。 如何使複選框3自動檢查,如果複選框1 &複選框2被選中。當兩個其他複選框已經'檢查'時,自動複選框'檢查'

HTML

<input type="checkbox" class="check" id="checkbox1"> 
<input type="checkbox" class="check" id="checkbox2"> 
<input type="checkbox" class="check" id="checkbox3"> 

jQuery的

var x = $("#checkbox1").is(':checked'); 
var y = $("#checkbox2").is(':checked'); 
if(x && y) { 
document.getElementById("checkbox3").is(':checked');} 
else {document.getElementById("checkbox3").checked = false; 
} 
+0

綁定C1&C2上的'change'事件並在處理程序中檢查是否都選中,如果是,則檢查C3否則取消選中C3。 – Tushar

+0

你可以舉一個例子來看看綁定檢查2事件C1和C2嗎? @Tushar – satriyoz

+0

[Demo](https://jsfiddle.net/tusharj/1d689rpn/) – Tushar

回答

0

首先,檢查你的代碼:D

var y = $("#checkbox2").is('checked');

應該是:

var y = $("#checkbox2").is(':checked');

你可以這樣做:

<script> 
$(document).ready(function() { 
    $('.check').on('change',function() { 
     var x = $("#checkbox1").is(':checked'); 
     var y = $("#checkbox2").is(':checked'); 
     $('#checkbox3').prop('checked',(x && y)); 
    }); 
}); 
</script> 

希望這有助於^^

+0

大聲笑,我敢肯定,我只是寫錯了,但在我的代碼,但在我的代碼是正確的.. 無論如何,謝謝你它的作品就像一個魅力.. :) 只是爲了說明,從@Tushar的回答也是正確的。 – satriyoz

+0

對於複選框,我通常建議使用'click'事件而不是'change',因爲在某些較舊的瀏覽器中,如果用鍵盤「複選」複選框,那麼'change'事件不會被觸發,直到將其切掉爲止,而'點擊「事件立即觸發(即使從鍵盤)。 – nnnnnn

+0

大聲笑,不客氣,祝你好運^^ –

0

我想,也許這會工作,我不是100%肯定,但在這裏:

var x = $("#checkbox1").is(':checked'); 
var y = $("#checkbox2").is('checked'); 
var z = $("#checkbox3").is('checked'); 
if(x && y && z) { 
document.getElementById("checkbox3").is(':checked');} 
else {document.getElementById("checkbox3").checked = false; 
} 
+1

*'document.getElementById(「checkbox3」)。is(':checked')'* - 這是行不通的。 DOM元素沒有'.is()'方法,並且在任何情況下,'if'塊中的該行都不會執行任何操作。 – nnnnnn