关于 select 中的 Change 事件
on Change event in select with knockout
我有一个问题如何调用 onchanges knock js 到我的 select 选项,我已经有一个函数和 html,但是当我选择 select 选项时,没有任何改变
<select data-bind="event:{change:setSelectedStation() },
options: seedData,
optionsText: 'text',
optionsValue: 'value'">
</select>
这是我的函数
setSelectedStation: function(element, KioskId){
this.getPopUp().closeModal();
$('.selected-station').html(element);
$('[name="popstation_detail"]').val(element);
$('[name="popstation_address"]').val(KioskId);
$('[name="popstation_text"]').val(element);
// console.log($('[name="popstation_text"]').val());
this.isSelectedStationVisible(true);
},
使用 knockout 的双向数据绑定,而不是手动订阅 UI 事件。
Knockout 的 value
数据绑定侦听 UI 更改并自动为您跟踪最新值。
不是通过 jQuery 方法替换 HTML,而是使用 text
、attr
和其他 value
绑定来更新 UI每当您的选择发生变化时。
如果您想在选择更改时执行额外的工作(例如关闭弹出窗口),您 subscribe
到所选值。
var VM = function() {
this.seedData = [
{
text: "Item 1",
data: "Some other stuff"
},
{
text: "Item 2",
data: "Something else"
},
{
text: "Item 3",
data: "Another thing"
}
];
this.selectedItem = ko.observable();
this.selectedItem.subscribe(function(latest) {
console.log("Input changed");
}, this);
};
ko.applyBindings(new VM());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<select data-bind="
value: selectedItem,
options: seedData,
optionsText: 'text'">
</select>
<!-- ko with: selectedItem -->
<p>
Your selection: <span data-bind="text: data"></span>
</p>
<!-- /ko -->
我有一个问题如何调用 onchanges knock js 到我的 select 选项,我已经有一个函数和 html,但是当我选择 select 选项时,没有任何改变
<select data-bind="event:{change:setSelectedStation() },
options: seedData,
optionsText: 'text',
optionsValue: 'value'">
</select>
这是我的函数
setSelectedStation: function(element, KioskId){
this.getPopUp().closeModal();
$('.selected-station').html(element);
$('[name="popstation_detail"]').val(element);
$('[name="popstation_address"]').val(KioskId);
$('[name="popstation_text"]').val(element);
// console.log($('[name="popstation_text"]').val());
this.isSelectedStationVisible(true);
},
使用 knockout 的双向数据绑定,而不是手动订阅 UI 事件。
Knockout 的 value
数据绑定侦听 UI 更改并自动为您跟踪最新值。
不是通过 jQuery 方法替换 HTML,而是使用 text
、attr
和其他 value
绑定来更新 UI每当您的选择发生变化时。
如果您想在选择更改时执行额外的工作(例如关闭弹出窗口),您 subscribe
到所选值。
var VM = function() {
this.seedData = [
{
text: "Item 1",
data: "Some other stuff"
},
{
text: "Item 2",
data: "Something else"
},
{
text: "Item 3",
data: "Another thing"
}
];
this.selectedItem = ko.observable();
this.selectedItem.subscribe(function(latest) {
console.log("Input changed");
}, this);
};
ko.applyBindings(new VM());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<select data-bind="
value: selectedItem,
options: seedData,
optionsText: 'text'">
</select>
<!-- ko with: selectedItem -->
<p>
Your selection: <span data-bind="text: data"></span>
</p>
<!-- /ko -->