JQUERY ON('更改')获取复选框值和状态

时间:2015-01-03 18:32:18

标签: javascript c# jquery html asp.net-mvc

如何“获取”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 containerDIVcheckBoxList

如何进入复选框的状态和值?

4 个答案:

答案 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
  }

});

FIDDLE

答案 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
}

});