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

使用javascript或jquery获取数组中的复选框状态,javascript,jquery,Javascript,Jquery,我在devexpress网格上有一列带有复选框。这是一个简单的复选框列,它取决于选中的复选框。我需要调用不同的方法,它不绑定到模型中的属性 <dx:GridViewDataColumn > <HeaderTemplate> </HeaderTemplate>

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

                      <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>

                      <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>
我需要知道选择了哪一行。我已尝试使用以下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.");
        }
                      <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>

这将仅返回选中的值。我需要返回类似数组{on,off,on}的内容,第一个被选中,第二个被取消选中,最后一个被选中。javascript或jquery中有什么方法可以做到这一点吗?

根据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);
});
                      <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>

根据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);
});
                      <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>

首先在网格中添加复选框,然后选择一个按钮并设置该按钮的onclick函数,然后所有选中的数据将通过数组,最后拆分数组值并执行进一步的工作。(数组值保存到隐藏字段中,我使用隐藏字段并设置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>

$('#btn1')。单击(函数(){
var CheckCount=$('input:checkbox[name=“checkboxModel”]:checked')。长度;
如果(支票计数>0)
{
var值RAY=
$('input:checkbox[name=“checkboxModel”]:checked').map(函数(){
返回此.value;
}).get().join(“,”);
$('#').val(valuesArray);
}              
否则{
警报('请至少检查一个数据!')
}
})

首先在网格中添加复选框,然后选择一个按钮并设置该按钮的onclick功能,然后所有选中的数据将通过数组,最后拆分数组值并执行进一步的操作。(数组值保存到隐藏字段中,我使用了隐藏字段并设置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>

$('#btn1')。单击(函数(){
var CheckCount=$('input:checkbox[name=“checkboxModel”]:checked')。长度;
如果(支票计数>0)
{
var值RAY=
$('input:checkbox[name=“checkboxModel”]:checked').map(函数(){
返回此.value;
}).get().join(“,”);
$('#').val(valuesArray);
}              
否则{
警报('请至少检查一个数据!')
}
})

您的复选框是否都共享相同的id?i、 e.
选择损坏
?它们应该是唯一的。当使用行的复选框的默认状态生成表时,您可以创建一个静态数组,然后在复选框的
onChange
事件中添加一个函数,在该函数中只需设置复选框的checked by
$(“”).prop('checked')
。到阵列位置。为了获得行号,您可以使用此
$('checkbox')。最近('tr')。index()
。您的复选框是否共享相同的id?i、 e.
选择损坏
?它们应该是唯一的。当使用行的复选框的默认状态生成表时,您可以创建一个静态数组,然后在复选框的
onChange
事件中添加一个函数,在该函数中只需设置复选框的checked by
$(“”).prop('checked')
。到阵列位置。为了获得行号,您可以使用这个
$('checkbox').closest('tr').index()