如何“获取”div“containerDIV”中更改的复选框?
查看:
@model MyModel
<div id="containerDIV">
<ul id="CheckBoxList">
@foreach (XObject t in MyModel.XCollection)
{
<li>
<input type="checkbox" value="@t.id"/>
</li>
}
</ul>
在JavaScript(Jquery)方面,我有这个:
$('#containerDIV').on('change', '#CheckBoxList', function (event) {
var id = $(this).val(); // this gives me null
if (id != null) {
//do other things
}
});
很明显,$this
不是复选框,而是div containerDIV
或checkBoxList
如何进入复选框的状态和值?
答案 0 :(得分:6)
如果在加载DOM后没有动态创建input
,您只需调用:
$('#CheckBoxList input[type=checkbox]').change(function() {
var id = $(this).val(); // this gives me null
if (id != null) {
//do other things
}
});
或要使用.on()
,您只需要定位点击的input
:
$('#CheckBoxList').on('change', 'input[type=checkbox]', function() {
var id = $(this).val(); // this gives me null
if (id != null) {
//do other things
}
});
答案 1 :(得分:2)
我使其正常工作的方式是使用.is(':checked')
。
$('selector').change(function (e) {
// checked will equal true if checked or false otherwise
const checked = $(this).is(':checked'));
});
答案 2 :(得分:0)
如果可以,请将事件添加为属性,例如onchange='function(this);'
。这会将元素返回给函数,因此您可以获取诸如ID之类的数据,或者只是修改它。
答案 3 :(得分:0)
继billyonecan评论之后,这是另一种方法:
$('#containerDIV').on('change', '#CheckBoxList', function (event) {
var id =$(event.target).val();
if (id != null) {
//do other things
}
});