【问题标题】:Clear selected value(s) for Kendo multi select清除剑道多选的选定值
【发布时间】:2013-11-19 01:59:15
【问题描述】:

我有 Kendo multiSelect 控件,它工作得非常好。但是我面临重置其选定值的问题。以下是我迄今为止尝试过的:

$("#Department option:selected").removeAttr("selected");  

var departmentMultiselect = $('#Department').data("kendoMultiSelect");
var subtract = $('#department').val();
                var values = departmentmultiselect.value().slice();
                values = $.grep(values, function (a) {
                 return $.inarray(a, subtract) == -1;
                });
                departmentmultiselect.datasource.filter({});
                departmentmultiselect.value(values);  

在第二个代码中,控制绕过了下面的代码

values = $.grep(values, function (a) {
                     return $.inarray(a, subtract) == -1;
                    });  

如何重置此控件?

【问题讨论】:

  • 不应该 $.grep 过滤函数有两个参数(即当前数组项及其索引),正如文档所说,这些是强制性的。
  • 重置是什么意思...取消选择任何值?

标签: jquery kendo-ui kendo-multiselect


【解决方案1】:

取消选择剑道多选中的所有值:

var multiSelect = $('#Department').data("kendoMultiSelect");
multiSelect.value([]);

【讨论】:

  • 谢谢。这完美地工作。您可以将其修剪得更多并废弃 var。 $('#Department').data("kendoMultiSelect").value([]);
【解决方案2】:

我也有同样的问题,但只想从多选中删除一个值而不是所有值。这是我想出的:

var multiselect = $('#multiSelectId').data("kendoMultiSelect");
var values = multiselect.value().slice();

// optionId is the value I want to remove
var index = $.inArray(optionId, values);
if (index > -1) {
    values.splice(index, 1);
}

multiselect.dataSource.filter({});
multiselect.value(values);

【讨论】:

    【解决方案3】:

    将多选设置为您的占位符值

    var multiselect = $("#ICD10CodeIds").data("kendoMultiSelect");
            multiselect.value(0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多