Javascript 获取也具有特定数据属性值的复选框列表

Javascript 获取也具有特定数据属性值的复选框列表,javascript,c#,jquery,model-view-controller,custom-data-attribute,Javascript,C#,Jquery,Model View Controller,Custom Data Attribute,我有一个包含复选框的数据表,用户可以选择导出记录或编辑记录。对于编辑,复选框具有数据属性,显示特定数据集是否可编辑(基于用户权限) 我试图获取复选框值列表,其中复选框被选中,数据属性的值为“True” 在我的视图模型中,我有以下字段: public bool ShortageIsEditable {get;set;} 这在视图模型映射器中设置为true或false,具体取决于记录的状态和用户的权限 在我看来,我有一个表,其中每个记录都有一个带有数据属性的复选框: @(Html

我有一个包含复选框的数据表,用户可以选择导出记录或编辑记录。对于编辑,复选框具有数据属性,显示特定数据集是否可编辑(基于用户权限)

我试图获取复选框值列表,其中复选框被选中,数据属性的值为“True”

在我的视图模型中,我有以下字段:

        public bool ShortageIsEditable {get;set;}
这在视图模型映射器中设置为true或false,具体取决于记录的状态和用户的权限

在我看来,我有一个表,其中每个记录都有一个带有数据属性的复选框:

 @(Html.Kendo().Grid(item.Shortages)
              .Name(string.Format("ShortagesGrid_{0}", item.Id))
              .Columns(columns =>
              {
                  columns.Template(GetViewLink)
                         .Title("View")
                         .Width(38);


                  columns.Template(o => "<input type=\"checkbox\" name=\"selectedRequestId\" " + (o.IsSelected ? "checked=\"checked\"" : "") + "class=\"myCssCheckAllCheckBox\"  value=\"" + o.ShortageNo + "\"  data-iseditable=\"" + o.ShortageIsEditable + "\"/>")
                         .Width(30);

                  columns.Bound(o => o.ShortageNo)
                         .Title("Shortage #")
                         .Width(120);
这将始终在“return el.data(“iseditable”)=“True”;”行上崩溃。 我也尝试过使用以下内容,但在提交newlist数组时崩溃:

    function submitGridSelectedItemsForEdit() {
    $('#gridExportForm').attr('action', '/Requests/Shortage/MultiEditShortages');
    $('#gridExportForm').attr('method', 'GET');


    var chkdlist = $('input[name="selectedRequestId"]:checked');
    var newlist = [];

    for (var chk in chkdlist)
    {
        if (chk.data("isEditable") == true) {
            newlist.push(chk);
        }
    }

    if (newlist.length == 0) {
        alert("Please select at least 1 request to Edit.");
    }
    else {
        newlist.submit();
    }
}

获取已选中且数据属性值为“True”的对象列表的最简单方法是什么?

el
filter()
回调中,是dom元素,而不是jQuery对象。LAso它不是回调函数的第一个参数,而是第二个参数

因此,要使用jQuery方法,您需要在
$()

或基于属性值作为选择器进行筛选

var newlist = chkdlist.filter('[data-iseditable="True"]')

我想你会发现
el
是索引器-应该是
return$(this)和第二个需要是
chkdlist.filter('[data iseditable=“True”]')
谢谢您的快速回答。我会先试试第二种选择。是的!!它就像一个符咒。非常感谢您的快速回答!
var newlist = chkdlist.filter(function (_,el) {
    return $(el).data("iseditable") === "True";
});
var newlist = chkdlist.filter('[data-iseditable="True"]')