淘汰赛,先前的选择/下拉值

时间:2014-05-08 16:45:12

标签: javascript jquery knockout.js

我想知道下拉列表中的前一个值是什么。

在下面的html中,我可以设置选项和当前选择的。

    <select data-bind="options: group_128,
                       optionsText: 'description',
                       value: selectedgroup_128,
                       event: { change: selectionChanged_group_128 }">
    </select>
我在Javascript / viewModel中执行

            selectionChanged_group_128 = function (data, event) {
            self.addItemClicked2(self.selectedgroup_128, event)
        };

此时我想知道之前选择的项目将其发送到addItemClicked2。

2 个答案:

答案 0 :(得分:3)

您可以订阅observable以在更改之前获取值:

self.selectedgroup_128.subscribe(function(oldValue) {
    self.selectedgroup_128.previousValue = oldvalue;
}, null, "beforeChange");

现在您可以像这样获得之前的值:

self.selectedgroup_128.previousValue

答案 1 :(得分:2)

为什么不改变模型以将新值存储为先前值?

http://jsfiddle.net/uLeDP/

var ViewModel = function() {
    this.group_128 = ko.observable([{description:"first"},{description:"second"}]);
    this.selectedgroup_128 = ko.observable("first");
    this.prevgroup_128 = null;
    this.selectionChanged_group_128 = function(val) {        
        alert("Now I'm " + this.selectedgroup_128().description + " but I was " + this.prevgroup_128);
        this.prevgroup_128 = this.selectedgroup_128().description;
    }
};