Knockout-如何从select中获取值并将其传递给ajax调用

时间:2014-08-26 03:54:50

标签: javascript jquery html ajax knockout.js

http://jsfiddle.net/smihit_123/kopp8h53/

 self.selectedCity.subscribe(function () {
        alert("this is percentage" + this.percentBonus);
    })

如何在淘汰赛中获取可观察属性的值?作为jsfiddle的一个例子,我怎样才能获得percentBonus的值并在组合框被更改时使用它。

当我更改状态值时,如何使城市的组合框发生变化。

在实际情况中,会有州和城市将根据所选的州而改变。我将通过进行ajax调用从服务器获取城市列表

1 个答案:

答案 0 :(得分:0)

对于一个选择,你需要可观察的不可观察数组。

self.selectedCity = ko.observable();
self.selectedCity.subscribe(function () {
    alert("this is percentage" + self.percentBonus());
})

这是fiddle

对于组合框,您可以调用更改事件

<select id="stateSelect" style="background-color:#69bed2; width:50px;" data-placeholder="..." 
data-bind="
        options: stateValue, 
        selectedOptions: selectedStates,
        event:{change:$root.ChangeCity}"
name="state" class="chosen-select" tabindex="1"></select>

在viewmodel中

self.cityValue = ko.observableArray();
self.ChangeCity = function(state){
    $.ajax({
        data: {state : state}
        .
        .
        .
        success : function(array){
            self.cityValue(array)
        }

    })
}