【问题标题】:Passing another parameter into Kendo UI DropDownList change event将另一个参数传递给 Kendo UI DropDownList 更改事件
【发布时间】:2015-11-16 01:08:58
【问题描述】:

我正在动态构建我的 kendo ui 下拉列表组件,因此我有一个为下拉列表中的每个元素构建的循环。 Kendo UI 附加了更多的 html 以使其看起来像一个下拉列表,但从不更新初始输入字段的值。我的计划是在更改时执行此操作,以便我可以搜索我所做的所有更改并动态获取值。问题是当我将特定项目传递给更改事件时,它仍然告诉我它是未定义的。这是代码的sn-p:

for(var x=0; x<data.length; x++){
    var item = data[x];
    if($('#item-'+item.Name).length){
        $('#item-'+item.Name).kendoDropDownList({
            dataSource: item.dataSource,
            dataTextField: "Label",
            dataValueField: "Value",
            value: (item.defaultValue != null) ? item.defaultValue : "",
            change: function(e, item){
                $('#item-'+item.Name).val(this.dataItem(e.item).Value);
            }
        });
    }
}

在更改事件中,传入的“项目”始终未定义。我不确定为什么以及如何解决它。谁能帮忙,先谢谢了。

【问题讨论】:

  • 我找到了答案,看来你不能将额外的参数传递给 kendo ui 中的事件函数。你要做的是: this.element.pro('id') 这将返回输入字段ID,你可以根据需要设置值。

标签: javascript jquery kendo-ui


【解决方案1】:

你不能简单地使用 item 而不传递它吗?假设您想要的项目是“var item = data[x];”在 kendoDropDownList 外部声明,您可以在 change 函数内部使用。

for(var x=0; x<data.length; x++){
    var item = data[x];
    if($('#item-'+item.Name).length){
        $('#item-'+item.Name).kendoDropDownList({
            dataSource: item.dataSource,
            dataTextField: "Label",
            dataValueField: "Value",
            value: (item.defaultValue != null) ? item.defaultValue : "",
            change: function(e){
                $('#item-'+item.Name).val(this.dataItem(e.item).Value);
            }
        });
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    相关资源
    最近更新 更多