jquery – kendo ui multiselect获取已选择的值的名称

前端之家收集整理的这篇文章主要介绍了jquery – kendo ui multiselect获取已选择的值的名称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个多选剑道,由mvc中的控制器填充.

我在下拉列表中有一个选项是selectAll,当我选择该选项时,我清除所有其他选项,现在我想禁用下拉列表(但不是删除“全选”选项的选项).

如果我做

  1. multiselect.enable(false) //i lose the option to delete the selected "Select All"

使用以下代码:当我选择“全选”选项时,我清除所有选择的其他选项和剑道,只需选择所有选项.

  1. if (sel == 'Select All') {
  2. var name_Controller = $(e.item).parent().attr('id');
  3. var name_Controller = name_Controller.substr(0,name_Controller.indexOf('_'));
  4. var t = "#" + name_Controller;
  5. var required = $(t).data("kendoMultiSelect");
  6. required.value(""); // to clean

现在..我如何禁用其他选项,或者知道已经选择的选项的名称,以便执行以下操作:

  1. if(required.contains("Select All")) //dont do nothing

required.val()doenst工作,因为它被用于多个下拉列表,所有下拉列表都自动使用不同的id

最佳答案
要记住两个问题:

>如何从列表中筛选选项:您应该使用筛选器.
>拦截更改事件,以便您可以分析选择了哪些选项,如果选择“全选”,则过滤列表中的每个选项.

你应该做的是:

  1. var multi = $("#colors").kendoMultiSelect({
  2. dataSource: [
  3. { name: "Select All" },{ name: "Red" },{ name: "Green" },{ name: "Blue" }
  4. ],dataTextField: "name",dataValueField: "name",change: function(e) {
  5. // Get selected options
  6. var values = this.value();
  7. if ($.inArray("Select All",values) != -1) {
  8. // If "Select All" is in the list
  9. // Remove other possibly selected options
  10. multi.value("Select All");
  11. // Remove any option from the datasource
  12. multi.dataSource.filter({ field : "name",operator : "eq",value : "Select All"});
  13. } else {
  14. // Clean filter
  15. multi.dataSource.filter({ });
  16. }
  17. }
  18. }).data("kendoMultiSelect");

在这里查看:http://jsfiddle.net/OnaBai/9nVdq/6/

编辑:如果你想要处理这个“全选”的通用函数,你应该将MultiSelects定义为:

  1. var multi = $("#colors").kendoMultiSelect({
  2. dataSource: colors,change: selectAll
  3. }).data("kendoMultiSelect");
  4. $("#cities").kendoMultiSelect({
  5. dataSource: cities,change: selectAll
  6. });

函数selectAll:

  1. function selectAll(e) {
  2. // Get selected options
  3. var values = this.value();
  4. if ($.inArray("Select All",values) != -1) {
  5. // If "Select All" is in the list
  6. // Remove other possibly selected options
  7. this.value("Select All");
  8. // Remove any option from the datasource
  9. this.dataSource.filter({ field : "name",value : "Select All"});
  10. } else {
  11. // Clean filter
  12. this.dataSource.filter({ });
  13. }
  14. }

“技巧”是指当前的多选.

在这里看到它:http://jsfiddle.net/OnaBai/9nVdq/8/

猜你在找的jQuery相关文章