knockout.js/如何响应绑定下拉列表中的更改事件
knockout.js / How to respond to change event on bound dropdown list
应该发生的是页面加载,它调用服务器以获取有关订单的信息(此时它只是可能的订单类型和当前订单类型的id的列表)。加载后,select的值应设置为"selected_order_type"。
然而,它看起来只是在列表中选择它,而实际上并没有将选择项的"值"设置为当前值。例如,在我的示例中,它在加载时选择第二个选项。如果我然后单击第三个选项,一切都正常如果我先单击第一个选项,什么都不会发生,我假设它是因为它仍然具有第一个选项值,即使它将第二个选项显示为所选选项。(我用了几个小时,只是想弄清楚它是如何工作的)。
<select id="order_type_select"
data-bind="options:order_types,
optionsText:'order_type',
optionsValue:'order_type_id',
value:selected_order_type"/>
function update_order_field(order_id,field,value){
var url = '/op/update_order_field'
data = {'order_id':order_id,'field':field,'value':value};
console.log(url);
console.log(data);
}
function refresh_order_data(order_id,view_model){
$.getJSON("/op/order_json/"+order_id,function(data){
ko.mapping.fromJS(data,view_model);
});
console.log(view_model.selected_order_type);
}
function OrderData(){
var self = this;
self.order_types = [{}]
self.selected_order_type = '0'
return self
}
$(document).ready(function() {
var order_id = $("#order_id").attr('order_id');
var view_model = ko.mapping.fromJS(new OrderData());
view_model.selected_order_type.subscribe(function(data){
console.log(data);
});
refresh_order_data(order_id,view_model);
ko.applyBindings(view_model);
});
初始加载时来自服务器的数据。。。
{
order_types: [
{ order_type_id=1, order_type="Phone"},
{ order_type_id=2, order_type="Fax"},
{order_type_id=3, order_type="Web"}
],
selected_order_type = '2'
}
问题出在服务器端。尽管我不知道为什么,因为客户端上的输出是相同的。我使用python将返回值封装在json.dumps中,一切都按预期工作
相关文章:
- knockout.js中的绑定多下拉列表
- 如何使用文本下拉列表中的绑定值来执行计算
- 使用 Web API 编辑获取数据时,无法将数据绑定到 jqgrid 中的下拉列表
- 将数据绑定添加到引导程序下拉列表
- 动态生成的下拉列表选项的挖空绑定
- 将公司名称绑定到更新面板中的下拉列表,自动完成文本框工作,但每次页面刷新时
- AngularJS 绑定要选择的数据下拉列表,当另一个选择下拉列表的值发生更改时
- 使用追加网格库下拉的绑定列表
- 将可选选项绑定到下拉列表
- 如何在 html 的下拉列表中绑定过去 12 个月
- 使用下拉列表绑定数据
- Asp.net MVC4 下拉列表绑定到带有 JavaScript 的复选框
- 使用angularjs、jquery、json、ajax基于下拉选择绑定html表数据
- 将下拉列表绑定到外部模态的敲除值
- AngularJS:下拉框绑定在Google Chrome中不起作用
- 使用Angular将一个选择下拉菜单绑定到一个AJAX请求
- 使用Javascript将java.util.List与下拉列表绑定
- 挖空.js - 嵌套数组数据和级联预填充下拉列表绑定
- 两个下拉选项绑定基于ID knockoutjs
- 将剑道下拉列表绑定到RESTFUL web服务