Javascript 获取也具有特定数据属性值的复选框列表
我有一个包含复选框的数据表,用户可以选择导出记录或编辑记录。对于编辑,复选框具有数据属性,显示特定数据集是否可编辑(基于用户权限) 我试图获取复选框值列表,其中复选框被选中,数据属性的值为“True” 在我的视图模型中,我有以下字段: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
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"]')