使用javascript或jquery获取数组中的复选框状态

时间:2018-04-30 10:01:39

标签: javascript jquery

我在devexpress网格上有一个带有复选框的列。这是一个简单的复选框列,它取决于我需要调用哪个复选框来调用不同的方法,它不会绑定到模型中的属性。

enter image description here

我需要知道选择了哪一行。我试图用这个javascript代码来解决这个问题:

if (document.getElementById('selectDamage').checked) {
        alert("checked");
        var checkedValues = $('input:checkbox:checked').map(function () {
            return this.value;
        }).get();
        console.log(checkedValues);
        } else {
            alert("You didn't check it! Let me check it for you.");
        }

仅返回选中的值。我需要返回像Array {on,off,on}这样的东西,第一个被选中,第二个被取消选中,最后一个被选中。在javascript或jquery中有没有办法做到这一点?

2 个答案:

答案 0 :(得分:3)

首先在网格中添加复选框然后按一个按钮并设置此按钮的onclick功能,然后所有检查的数据将通过数组并最终拆分数组值并完成更多工作。(数组值保存到隐藏字段,i使用隐藏字段并设置id lblarr)

                      <dx:GridViewDataColumn >
                            <HeaderTemplate>

                            </HeaderTemplate>
                            <DataItemTemplate>                                   

                                <input type="checkbox" class="case" id="chkchild" name="checkboxModel" value='<%#Eval("SALE_DOC_#") %>' />
                            </DataItemTemplate>
                        </dx:GridViewDataColumn>


<script>
                  $('#btn1').click(function () {
                 var CheckCount =$('input:checkbox[name="checkboxModel"]:checked').length;
                 if (CheckCount > 0) 
                  {
               var valuesArray = 
        $('input:checkbox[name="checkboxModel"]:checked').map(function () {

                        return this.value;

                    }).get().join(","); 

                    $('#<%=lblarr.ClientID%>').val(valuesArray);                       

                }              
                else {

                    alert('Please check at least one data!')

                }
            })

</script>

答案 1 :(得分:1)

根据你的html布局,你可以做这样的事情来获得一个更新的索引检查状态数组

var els = $("table#gvDamages3_DXMainTable input[type=checkbox]");
els.on("change", function(){
    var vals = [];
    els.each(function() {
        vals.push(this.checked);
    });

    console.log(vals);
});