当前位置: 首页 > 知识库问答 >
问题:

剑道ui(jquery)下拉列表-不在下拉列表中显示所选选项

索寒
2023-03-14

我想在下拉列表中隐藏所选项目。

let data = [
      { id: 1, name: "Apples", isDeleted: false},
      { id: 3, name: "Mangoes", isDeleted: false},
      { id: 2, name: "Grapes", isDeleted: false},
      { id: 5, name: "Papaya", isDeleted: false},
      { id: 4, name: "Banana", isDeleted: false}
    ]
  $("#dropdownlist").kendoDropDownList({
    dataSource: data.filter(item=> item.id != 2),
    dataTextField: "name",
    dataValueField: "id",
    select: function(e){ },
    template: kendo.template($("#template").html())
  });

我试图从选择事件的数据源中删除该项目,并直接将文本和值分配给下拉列表。但是值将是空的,可能是因为设置的值不存在于数据源中。在剑道留档中找不到解决方案。

...
 select: function(e){
      console.log(e);
      e.preventDefault();
      let selectedItemId = e.dataItem.id;
      let selectedItemName = e.dataItem.name;
      e.sender.dataSource.data(data.filter(item => item.id!=2 && item.id != selectedItemId));
      
      e.sender.text(selectedItemName);
      e.sender.value(selectedItemId);
          
      e.sender.value() // this will return empty!!!
 },
 ...

共有1个答案

裴俊智
2023-03-14

无需从数据源中删除该项。只需隐藏所选内容。这个想法是基于这篇文章的。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>Kendo UI DropDownList Example</title>

    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.2.617/styles/kendo.default-v2.min.css"/>

    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <script src="https://kendo.cdn.telerik.com/2020.2.617/js/kendo.all.min.js"></script>
</head>
<body>
  
<input id="dropdownlist" style="width: 400px" />
<script>
    $(document).ready(function() {
        $("#dropdownlist").kendoDropDownList({
            dataTextField: "name",
            dataValueField: "id",
            dataSource: {
                data: [
                    { id: 1, name: "Apples" },
                    { id: 3, name: "Mangoes" },
                    { id: 2, name: "Grapes" },
                    { id: 5, name: "Papaya" },
                    { id: 4, name: "Banana" }
                ],
                
            },
            open: function(e) {
              var index = e.sender.select();
              var items = e.sender.items();
              for (var a = 0; a < items.length; a++) { 
                $(items[a]).show();
              }
              $(items[index]).hide();
            }
        });
    });
</script>

</body>
</html>
 类似资料:
  • 我有一张有多个剑道下拉列表的表格。。 有了选项标签,它显示了空白选择,但是当您打开DROPPDROW列表时,它会出现任何选择“空白区”的选项。在选择了一些下拉列表的值后,我无法返回。 我知道如果我在下拉列表中放入一些文本,选项标签就会出现在下拉列表中(css与其他文本不同)。但我想保留空白。 其他解决方案是在服务器端的第一个位置添加一个记录,但我想知道是否有人有不同的解决方案。谢啦

  • 我在五月有一个剑道MVC下拉列表。我正在成功地将所选值从中保存到数据库中。当我来编辑数据时,该值从模型中正确返回并在下拉树中设置,但是,在下拉树中没有任何项目被视觉上选中。 当我尝试从单击按钮读取下拉树的值时,它正确地返回该值。 上面的javascript警报正确返回该值,但在DropdownTree中没有显示选定的项目。我还尝试删除ValuePrimitive属性,但没有任何效果。 有人能帮我找

  • 如何在更改函数上选择剑道下拉列表值。剑道下拉列表在网格中。在更改函数中,我想选择列表中的第一项。 我已经编写了代码: 但是下拉列表没有选择更改功能。我该怎么做请帮帮我。

  • 我有一种情况,我有两个多选择剑道下拉列表,在第一个多选择下拉列表的选择上,我想填充另一个多选择下拉列表。 第一个多选剑道DD: 第2次MultiSelect剑道DD: JS代码: 我所尝试的: 我试图在函数onFirstDropDownChange中调用AJAX,但由于数据源没有绑定到第二个下拉列表,所以这不起作用。 限制条件: 首先,我不想在两个下拉列表中加载数据 第二个下拉列表的值取决于第一个

  • 我在JSFIDLE示例中有以下代码 问题是,当用户单击“添加新记录”时,它会添加一个新项目,其中设施名称下拉列表显示列表中的第一个项目。如果用户单击“更新”,则会保存记录,但会将设施名称清空。原因是,下拉列表中确实没有选定项目。我之所以知道这一点,是因为所选值在传递给控制器代码时为空。所以,我真的很想知道如何 不显示列表中的第一个项目,直到用户在列表中实际选择它或 将选定的项目设置为列表中的第一个

  • 您好,我正在使用kendo ui mvvm,我正在尝试使用远程数据源绑定填充下拉列表,我可以将数据字段绑定到下拉列表,但我的下拉列表有空值,我尝试的是不在下拉列表中显示这些空值。问题是: 这是我的密码: 正如你所看到的,我已经尝试了data-tuumal-value="true",但是它不起作用,我是新的剑道mvvm,任何帮助都将不胜感激,谢谢。