Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在击倒js的剑道ui自动完成中选择id_Javascript_Jquery_Knockout.js_Kendo Ui_Knockout Kendo - Fatal编程技术网

Javascript 如何在击倒js的剑道ui自动完成中选择id

Javascript 如何在击倒js的剑道ui自动完成中选择id,javascript,jquery,knockout.js,kendo-ui,knockout-kendo,Javascript,Jquery,Knockout.js,Kendo Ui,Knockout Kendo,我正在我的应用程序中使用击倒剑道自动完成。我想获取所选自动完成的值字段。下面是自动完成的小提琴。我想显示id而不是文本 Javascript代码: var ViewModel = function() { this.choices = ko.observableArray([ { id: "1", name: "apple"}, { id: "2", name: "orange"}, { id: "3", name: "banana"}

我正在我的应用程序中使用击倒剑道自动完成。我想获取所选自动完成的值字段。下面是自动完成的小提琴。我想显示id而不是文本

Javascript代码:

var ViewModel = function() {
    this.choices = ko.observableArray([
        { id: "1", name: "apple"},
        { id: "2", name: "orange"},
        { id: "3", name: "banana"}
    ]);
    this.selectedChoice = ko.observable();   
};
ko.applyBindings(new ViewModel());
HTML:


选中:

您可以使用
选择功能(并删除该值):



另一种方法是使用
ko.computed
,获取所选数据的id

HTML:

小提琴:

<input data-bind="kendoAutoComplete: { dataTextField: 'name', 
                                       dataValueField:'id', 
                                       data: choices,
                                       value: selectedChoice }" />
 Selected: <strong data-bind="text: selectedChoice"> </strong>
<input data-bind="kendoAutoComplete: { dataTextField: 'name', 
                                       dataValueField:'id', 
                                       data: choices,
                                       select: function(e) { 
    $data.selectedChoice(this.dataItem(e.item.index()).id);
}}" />
<input data-bind="kendoAutoComplete: { dataTextField: 'name', 
                                       dataValueField: 'id', 
                                       data: choices,
                                       value: selectedChoice }" />
Selected: <strong data-bind="text: selectedChoiceId"> </strong>
var ViewModel = function() {
    this.choices = ko.observableArray([
        { id: "1", name: "apple"},
        { id: "2", name: "orange"},
        { id: "3", name: "banana"}
    ]);
    this.selectedChoice = ko.observable('');
    this.selectedChoiceId = ko.computed(function () {
        var choices = this.choices();

        for (var i in choices) {
            if (choices[i].name == this.selectedChoice())
                return choices[i].id;
        }

        return "";
    }, this);
};

ko.applyBindings(new ViewModel());