javascript - 如何检查 Kendo UI ComboBox 是否脏(即值已从默认值更改)?

标签 javascript html css kendo-ui

我有一个简单的 Kendo ComboBox:

HTML:

<div>
    <h5>Brand</h5>
    <div id="combo1"></div>
</div>

JavaScript:

j$("#combo1").kendoComboBox({
    dataTextField: "name",
    dataValueField: "id",
    value: "Original_Brand_Value",
    dataSource: {
        transport: {
            read: {
                url: "..."
            }
        }
    }
});

请注意,ComboBox 的默认初始值为 "Original_Brand_Value"。如何检查 Kendo ComboBox 是否“脏”,即 当前的值不是 "Original_Brand_Value"?似乎我应该能够做类似的事情:

j$("#combo1").data("kendoComboBox").isChanged() 
**OR**
j$("#combo1").data("kendoComboBox").dataSource.isChanged() 

但是我找遍了,好像没有这样的方法。必须有一些方法可以做到这一点,这一定是一个常见的用例。

最佳答案

正如您得出的结论,kendoComboBox 小部件本身不会跟踪它是否已更改状态。数据源确实有一个 hasChanges() 方法,但进行选择不会更改数据源,它只是从中获取不同的值。然而,kendoComboBox 确实会引发您可以使用的事件,例如当用户进行选择时触发的“选择”:http://docs.telerik.com/kendo-ui/api/javascript/ui/combobox#events-select

例如,您可以将其添加到您的组合框配置中:

select: function(e) {
    var item = e.item; //jQuery object representing the selection
    isDirty = true; //Set a flag or call a function as required. Perhaps check the item as well to make sure it isn't the default value.
}

或者,还有一个名为“select”的方法可用于获取或设置所选元素。您可以使用它来获取选定的索引(如果它不为零,则组合框具有非默认选择):

var selectedIndex = j$("#combo1").data("kendoComboBox").select();

这不是唯一的方法。如果您将 MVVM 声明语法与绑定(bind)到 kendo.Data.Model(可观察)上的属性的组合框一起使用,则任何更改都会自动在该模型上设置脏标志:http://docs.telerik.com/kendo-ui/api/javascript/data/model#fields-dirty

MVVM 是一种非常强大的设计模式,可与 kendo 一起使用,但我认为深入了解更多细节超出了您所要求的范围。

关于javascript - 如何检查 Kendo UI ComboBox 是否脏(即值已从默认值更改)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38880803/

相关文章:

javascript - gRaphael图书馆: Can't Create Line Chart

javascript - 无法调用 jquery 插件上的公共(public)方法

javascript - 如何在 res.redirect() 之前等待

javascript - 高度可变的div中已知高度的垂直居中图片,允许图片溢出div上下

javascript - 如何在 javascript 调用后重新加载样式?

html - 嵌套的 Bootstrap 表格未填充父单元格高度

javascript - 当管理员用户的帐户超时时,如何提醒他们

javascript - 为什么context和rootjQuery可以执行 '||'操作?并且返回的结果不是boolean类型?

javascript - 使用 CDN 与 NPM 安装库

php - 基于用户输入的计时器 PHP