// JSP
onclick="selectProductCode('${productCode}')"
// JS
function selectProductCode(code) {
alert($("input:checkbox[name='selectCode']:checked").is(':checked'));
}
問題:$("input:checkbox[name='selectCode']:checked") 選取的是所有已勾選的 checkbox 群組。只要群組中至少有一個被勾選,.is(':checked') 就回傳 true。取消第一個時,群組還有其他勾選項 → 仍為 true。
// JSP
onclick="selectProductCode('${productCode}', this)"
// JS
function selectProductCode(code, cb) {
alert(cb.checked); // 原生 DOM 屬性,直接反映當前狀態
// 或 jQuery
alert($(cb).is(':checked'));
alert($(cb).prop('checked'));
}
$(document).on('change', 'input:checkbox[name="selectCode"]', function() {
console.log(this.checked, this.value);
});
| 寫法 | 回傳 | 適用場景 |
|---|---|---|
elem.checked | Boolean | 原生、最快、無依賴 |
$(elem).prop('checked') | Boolean | jQuery 1.6+ 推薦 |
$(elem).is(':checked') | Boolean | 可用於任意選取器 |
$(elem).attr('checked') | String/undefined | 不推薦,反映初始 HTML 屬性而非當前狀態 |