按Enter键时Kendo组合框值不正确

时间:2014-10-22 17:32:36

标签: javascript html javascript-events kendo-ui kendo-combobox

TLDR:如何在jsbin链接的条件下正确响应value()? http://jsbin.com/pikoye/edit

我正在使用Kendo UI的ComboBox并且遇到了一个我希望有人可以帮助我的边缘案例。我使用组合框作为显示MRU命令列表的方法。通过下面描述的步骤,如果用户选择了一个命令,但随后改变主意或编辑它,结果值()仍然具有所选项目的值。

  1. 使用鼠标选择列表中的项目
  2. 光标现在位于文本框中文本的末尾
  3. 选择所有文字
  4. 输入'something'并按[enter]
  5. 警报将显示所选项目的值,但显示“某事物”的文字。
  6. 我尝试过其他按键事件试图改变时间,但没有任何运气。它发生在IE11,Chrome和Firefox中。我也尝试过不同版本的KendoUI。我们希望能够让用户按[enter]提交他们的选择,这样就必须留下来。我的解决方案是使用text()值,它现在可以使用,但似乎值()应该有效。

    更新:我想要的是Value()返回'something'而不是之前选择的索引。我可以将Text()与索引的文本值进行比较,但似乎是不必要的比较。要查看我希望看到的值,请单击“自定义”按钮。

1 个答案:

答案 0 :(得分:0)

我已为您提供了这个jsbin的可能解决方案http://jsbin.com/vupagekizu/1/

希望我明白你的目标是什么。

基本上我所做的就是在你的组合框中添加一个Select事件,检查所选项目的索引是否大于-1,即列表中的项目,如果是,则系统将其存储在您可以访问的全局变量。为了获得项目的所有属性,我选择了与所选项目关联的dataItem。

var selectedValue = null;


 select: function(e)
    {
      if(e.item.index() > -1)
        {
          selectedValue = this.dataItem(e.item.index());
      alert(selectedValue);
        }
      else 
        {
          //do nothing.
        }          
    }