如何在更改事件中检索Kendo MultiSelectFor的发件人ID?

时间:2016-01-05 10:02:50

标签: javascript jquery asp.net-mvc kendo-asp.net-mvc

我在局部视图中使用了Kendo MultiSelectFor。此局部视图动态呈现这些多选项,因此它们的名称也是动态的。我有兴趣在更改事件触发时获取id但似乎是一项相当困难的任务

我的多选列表如下

@(Html.Kendo().MultiSelectFor(x => x.Widget.lstParameters[j].SelectedItems)
                                            .Name("widget-multiselectvalue-" + j)
                                            .BindTo(new MultiSelectList(Model.Widget.lstParameters[j].MSLDropDownList, "Value", "Text"))
                                            .Placeholder("--Please Select--")
                                            .HtmlAttributes(new { @class = "check-if-change" })
                                            .Events(e => e.Change("widget.msl_change"))
            )

以下是我的msl_change事件

msl_change: function (e) {
    //var mslid = $(this)[0].id;
}

在查看e.sender时,它的_tagID非常接近多选列表的id。我可以操纵这个标签id来获得所需的部分,但我真的想避免这种黑客攻击。 e.sender的屏幕截图如下

enter image description here

1 个答案:

答案 0 :(得分:0)

你非常接近 - 事件的发件人属性是Kendo MultiSelect的一个实例。 Kendo实例有一个名为" element"的属性。它包含对DOM元素的引用。知道这一点,您可以使用以下代码访问更改处理程序中的ID:

var id = $(e.sender.element).prop("id");

或者,使用已注释掉的代码中的语法:

var id = $(e.sender.element)[0].id

或者,只是为了好的措施......:

$(e.sender.element).get(0).id