【问题标题】:Kendo, kendoDropDownList, _selectedValue, always the first optionKendo, kendo DropDownList, selectedValue, 永远是第一个选项
【发布时间】:2015-09-11 02:50:32
【问题描述】:

这可能很容易,但我被卡住了。

我有一个与 kendoDropDownList 一起使用的函数,但我无法检索 selectedIndex 的值。忽略该功能的实际作用,有人可以解释一下吗?

function setDocTypeAssociates(event){

    var dropdownlist = $("#type_doma_ky").data("kendoDropDownList");
    console.log(dropdownlist); 
    console.log(dropdownlist._selectedValue); 
    console.log(dropdownlist.selectedIndex); 
    ...

您可以在附加的屏幕转储中看到这三个 console.log() 的结果。

为什么对象中的值是正确的(65 和 4),而当我单独转储它们时却不正确(67 和 0)?

【问题讨论】:

  • 原因可能是依赖代码,您能否在 jsfiddle 中重现相同的代码?并且仅供参考从不使用 _variable 进行开发,因为它们被认为是私有成员。
  • 如果我们怀疑依赖代码,我不可能在 jsFiddle 中设置它。无论如何,使用我们正在使用的所有框架和 OO 类型代码来生成一个独立的版本已经足够困难了。我想我的具体问题更具理论性。两个连续的转储如何为同一个变量产生不同的结果?例如,我是否以错误的方式访问第二次和第三次转储中的值?我应该使用更合适的语法吗?

标签: javascript kendo-ui selectedvalue selectedindex


【解决方案1】:

真的很难说为什么你会得到这些结果,我个人试图重现它们但无法。

获取数据的最佳方式是:

      var dropdownlist = $("#list").data("kendoDropDownList");
      console.log(dropdownlist); 
      console.log(dropdownlist.text()); 
      console.log(dropdownlist.value());    
      console.log(dropdownlist.selectedIndex); 

带有 text() 和 value() 函数。

一般而言,Telerik 不建议使用以下划线开头的字段,因为它们是为内部使用而设置的,并且可能会更改。例如在最新版本的 Kendo UI 中,_selectedValue 返回 undefined。

我已经创建了工作示例供您参考。

http://dojo.telerik.com/eNUkU

【讨论】:

  • 嗨 Stefan 同样的问题。我无法在此对话窗口中放置屏幕转储,但这是我得到的:console.log(dropdownlist); text = Press Card value = 65 selectedIndex = 4(即selectBox中的第五项)单独访问:console.log(dropdownlist.text()); = 文章或投稿 console.log(dropdownlist.value()); = 67 控制台.log(dropdownlist.selectedIndex); = 0(即选择框中的第一项)怎么会???? :-(
  • 嗨斯特凡。你能看一下道场链接吗?当我运行它时,我会在控制台中看到“kendo.cdn.telerik.com/2015.2.805/js/angular.min.js.map404(未找到)”。
  • 嗨迈克尔,我真的不知道你为什么会得到这个结果。我需要查看您的代码以尝试了解。不应该。你指的是哪个道场链接?如果是我发布的那个链接中没有这样的参考,如果是另一个请告诉我是哪一个。最后,我尝试让您了解获取所选值的正确方法究竟是什么。希望能帮助到你。如果还有什么我可以帮忙的,现在就告诉我。
【解决方案2】:

看看这个小提琴: (https://jsfiddle.net/cr1v6cvh/1/)

获取数据

<script>

 $("#btnGetData").kendoButton({
    click: function (event){

      var dropdownlist = $("#dataList").data("kendoDropDownList");
      console.log(dropdownlist); 
      console.log(dropdownlist.text()); 
      console.log(dropdownlist.value());    
      console.log(dropdownlist.selectedIndex); 
     }
  })
  $(document).ready(function() {
    $(".ddlData").kendoDropDownList({
      dataTextField: "text",
      dataValueField: "value",
      dataSource: [
        { text: "data 1", value: "1" },
        { text: "data 2", value: "2" },
        { text: "data 3", value: "3" },
        { text: "data 4", value: "4" }
      ]
    });
  });



</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    相关资源
    最近更新 更多