這個問題在這里已經有了答案: 如何檢查是否在 jQuery 中選中了復選框? (67 個回答) 昨天關閉。
我有 3 個復選框,我需要檢查一下是否所有 3 個復選框都未選中,但到目前為止,我為使其正常作業所做的努力并未成功。
這樣做的正確方法是什么jQuery?
到目前為止我的一些嘗試:
if( $("#adviceonprivatemail").not(":checked") && $("#adviceonmobile").not(":checked") && $("#adviceoncompanymail").not(":checked") ){
console.log('All is disabled')
}else{
console.log('All is enable')
}
if( $('#adviceonprivatemail').not(':checked').length) && $('#adviceonmobile').not(':checked').length) && $('#adviceoncompanymail').not(':checked').length) ){
console.log('Alle er disabled')
}
if( $('#adviceonprivatemail').not(':checked').length) && $('#adviceonmobile').not(':checked').length) && $('#adviceoncompanymail').not(':checked').length) ){
console.log('Alle er disabled')
}
uj5u.com熱心網友回復:
用 prop
if( $("#adviceonprivatemail").prop("checked") && $("#adviceonmobile").prop("checked") && $("#adviceoncompanymail").prop("checked") ){
alert('All are enabled')
}else{
alert('Some are disabled')
}
您也可以執行以下操作:如果您使用一些具有相同識別符號的新“資料屬性”,您可以一次選擇它們 3 個,然后執行 foreach 直到有人被選中
<input type="checkbox" data-chk="this" id="adviceonprivatemail" />
<input type="checkbox" data-chk="this" id="adviceonmobile" />
<input type="checkbox" data-chk="this" id="adviceoncompanymail" />
if( $("[data-chk='this']").prop("checked") == false ){
alert('All are disabled')
}else{
alert('Some are enabled')
}
uj5u.com熱心網友回復:
您在第二次和第三次嘗試中出現語法錯誤()每次嘗試后都有一個額外的錯誤.length)。應該$('#adviceonprivatemail').not(':checked').length不是$('#adviceonprivatemail').not(':checked').length)。
此外,:not是一種選擇器,因此它回傳任何匹配的元素,:is而是布爾檢查,它回傳真/假。這就是為什么$("#adviceonprivatemail").not(":checked")不起作用,但$("#adviceonprivatemail").not(":checked").length確實有效(0 為假,1 為真)。要復制該.not行為,您可以這樣做!$("#adviceonprivatemail").is(":checked"),這是說“如果未檢查”的合乎邏輯的方式。
而每個鏈接的問題,用.prop('checked')另一種方式來檢查。但同樣,您需要使用!下面第一個示例中的方法反轉邏輯。
$('input').on('change', function() {
// https://stackoverflow.com/a/6438222/1499877
// use `.is(':checked')`
if (!$("#adviceonprivatemail").is(":checked") &&
!$("#adviceonmobile").is(":checked") &&
!$("#adviceoncompanymail").is(":checked")
) {
console.log('All are disabled 1');
} else {
console.log('Some are enabled 1');
}
// use `.not(':checked').length`
if (
$('#adviceonprivatemail').not(':checked').length &&
$('#adviceonmobile').not(':checked').length &&
$('#adviceoncompanymail').not(':checked').length
) {
console.log('All are disabled 2');
} else {
console.log('Some are enabled 2');
}
// https://stackoverflow.com/a/6458172/1499877
// use `.prop('checked')`
if (!$("#adviceonprivatemail").prop('checked') &&
!$("#adviceonmobile").prop('checked') &&
!$("#adviceoncompanymail").prop('checked')
) {
console.log('All are disabled 3');
} else {
console.log('Some are enabled 3');
}
});
$('input').first().change();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="adviceonprivatemail" />
<input type="checkbox" id="adviceonmobile" />
<input type="checkbox" id="adviceoncompanymail" />
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/361821.html
標籤:查询
下一篇:點擊后保持焦點
