【问题标题】:Default select kendo combobox默认选择剑道组合框
【发布时间】:2014-11-19 09:12:30
【问题描述】:

我使用 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>

这是一个例子。怎么转换成put text?

【问题讨论】:

    标签: javascript kendo-ui kendo-combobox


    【解决方案1】:

    正如@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 的项目的正确值。

    所以,除非您确定在value 调用中设置的值是有效的dataTextField,否则我建议使用dataValueField

    在下面的代码sn-p中检查这个...

    $("#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"/>

    【讨论】:

    • 很好地解释了@OnaBai。
    【解决方案2】:

    将文本直接放入组合框:

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

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

      combobox.value("XYZ");
    

    所以,使用索引来设置组合框的值是很好的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多