如何判断页面加载时选中了哪些复选框?
How to tell what checkboxes are checked on page load?
我已经有一个 change
event/listener 正在进行,但是当有人刷新页面时这不会做任何事情......等等(页面加载)并且已经选中了复选框。
我如何检查页面加载时是否选中了任何复选框,并获取它们的 name/value(随便)?
示例:我检查特定 DOM 元素中的任何复选框是否像这样被选中:
if($("#allocation input:checkbox").is(':checked')){
console.log("something is checked");
}
但是我怎样才能真正获得页面加载时检查的 id
?
上面的里面有类似 $this.id
的东西? (但这当然行不通)。
或者你能以某种方式将 event.target
绑定到上面的 is.('checked')
条件中吗?
同样,我已经为 .change()
(用户交互)部分准备好了一些东西,但是如果复选框被选中并且有人重新加载页面,该复选框仍然被选中(我需要迎合仍然如此)。
我的最终解决方案:(similar/same 如下所示)
KEY..使用'each'函数..
//on page load
$('#allocation input:checked').each(function() {
if($(this).is(':checked')){
//console.log("CB CHECK: " + $(this).attr('id'));
var targetID = $(this).attr('id');
$('#' + targetID + 'amount').prop('disabled', false);
}
});
这将遍历所有选中的复选框和console.log它们的 ID。
可通过 PROP 访问 ID。
$("input:checkbox:checked").each(function(){
console.log($(this).prop("id"));
});
编辑:也获取它们的名称和值
$("input:checkbox:checked").each(function(){
console.log($(this).prop("id"),$(this).prop("name"),$(this).val());
});
组合选择器 "#allocation input:checked"
(或 "#allocation input:checkbox:checked"
),这将为您提供所有已选中复选框的数组。然后用 each()
遍历它们,你可以用 this.id
.
得到 id
将整个代码放在代码底部的自执行函数中 (function() {...})();
,或者至少在所有复选框下方。像这样:
(function() {
$("#allocation input:checked").each(function() {
console.log(this.id + " is checked")
});
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div id="allocation">
<input type="checkbox" id="chk1" checked="checked" /> Option 1
<input type="checkbox" id="chk2" /> Option 2
<input type="checkbox" id="chk3" /> Option 3
<input type="checkbox" id="chk4" checked="checked" /> Option 4
<input type="checkbox" id="chk5" checked="checked" /> Option 5
</div>
我已经有一个 change
event/listener 正在进行,但是当有人刷新页面时这不会做任何事情......等等(页面加载)并且已经选中了复选框。
我如何检查页面加载时是否选中了任何复选框,并获取它们的 name/value(随便)?
示例:我检查特定 DOM 元素中的任何复选框是否像这样被选中:
if($("#allocation input:checkbox").is(':checked')){
console.log("something is checked");
}
但是我怎样才能真正获得页面加载时检查的 id
?
上面的里面有类似 $this.id
的东西? (但这当然行不通)。
或者你能以某种方式将 event.target
绑定到上面的 is.('checked')
条件中吗?
同样,我已经为 .change()
(用户交互)部分准备好了一些东西,但是如果复选框被选中并且有人重新加载页面,该复选框仍然被选中(我需要迎合仍然如此)。
我的最终解决方案:(similar/same 如下所示)
KEY..使用'each'函数..
//on page load
$('#allocation input:checked').each(function() {
if($(this).is(':checked')){
//console.log("CB CHECK: " + $(this).attr('id'));
var targetID = $(this).attr('id');
$('#' + targetID + 'amount').prop('disabled', false);
}
});
这将遍历所有选中的复选框和console.log它们的 ID。
可通过 PROP 访问 ID。
$("input:checkbox:checked").each(function(){
console.log($(this).prop("id"));
});
编辑:也获取它们的名称和值
$("input:checkbox:checked").each(function(){
console.log($(this).prop("id"),$(this).prop("name"),$(this).val());
});
组合选择器 "#allocation input:checked"
(或 "#allocation input:checkbox:checked"
),这将为您提供所有已选中复选框的数组。然后用 each()
遍历它们,你可以用 this.id
.
id
将整个代码放在代码底部的自执行函数中 (function() {...})();
,或者至少在所有复选框下方。像这样:
(function() {
$("#allocation input:checked").each(function() {
console.log(this.id + " is checked")
});
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div id="allocation">
<input type="checkbox" id="chk1" checked="checked" /> Option 1
<input type="checkbox" id="chk2" /> Option 2
<input type="checkbox" id="chk3" /> Option 3
<input type="checkbox" id="chk4" checked="checked" /> Option 4
<input type="checkbox" id="chk5" checked="checked" /> Option 5
</div>