1

我使用 KendoUI ComboBox,我想放置一个默认选择项。

在 KendoUI ComboBox 中,我没有找到将默认值放入文本而不是索引的方法。

<script>
    $("#combobox").kendoComboBox({
        dataSource: [
            { id: 1, name: "Apples" },
            { id: 2, name: "Oranges" }
        ],
        dataTextField: "name",
        dataValueField: "id"
    });

    var combobox = $("#combobox").data("kendoComboBox");

    combobox.select(combobox.ul.children().eq(0));
</script>

这是示例。如何将其转换为放置文本?

4

2 回答 2

5

正如@SatyaRanjanSahoo 所说,您应该使用value 您应该使用该id值,否则您将强制使用可能不在数据源中的值。

例如,如果你这样做:

var combobox = $("#combobox").data("kendoComboBox");
// Set Value
combobox.value("Apricot");
// Get Value
alert("Value is " + combobox.value());

这将显示Apricot,但这不是DataSource同时,如果你这样做:

var combobox = $("#combobox").data("kendoComboBox");
// Set Value
combobox.value(2);
// Get Value
alert("Value is " + combobox.value());

这将表明Oranges是 的项目的正确id2

因此,除非您确定valuecall 中设置的值是有效的,否则dataTextField我建议使用dataValueField.

在以下代码片段中检查这一点...

$("#combobox").kendoComboBox({
  dataSource: [
    { id: 1, name: "Apples" },
    { id: 2, name: "Oranges" }
  ],
  dataTextField: "name",
  dataValueField: "id"
});

var combobox = $("#combobox").data("kendoComboBox");


// Set a valid value
combobox.value("Oranges");
alert("Value for Oranges is: " + combobox.value());

// Set an invalid value
combobox.value("Apricots");
alert("Value for Apricots is: " + combobox.value());
<link href="http://cdn.kendostatic.com/2014.2.1008/styles/kendo.common.min.css" rel="stylesheet" />
<link href="http://cdn.kendostatic.com/2014.2.1008/styles/kendo.default.min.css" rel="stylesheet" />
<script src="http://cdn.kendostatic.com/2014.2.1008/js/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.2.1008/js/kendo.all.min.js"></script>

<input id="combobox"/>

于 2014-11-19T10:42:50.073 回答
1

要将文本直接放入组合框中:

 var combobox = $("#combobox").data("kendoComboBox");
 combobox.value("Oranges");

但是,可以使用相同的方法将匿名文本设置到不属于数据源的组合框中。IE

  combobox.value("XYZ");

因此,使用索引为组合框设置值是很好的。

于 2014-11-19T10:33:24.390 回答