gpt4 book ai didi

data-binding - 在下拉更改 Knockout Js 上更改可观察值

转载 作者:行者123 更新时间:2023-12-04 01:38:20 24 4
gpt4 key购买 nike

如果车辆是新车或二手车,我有这个下拉菜单。

<select name="VehicleType" id="vehicleTypeDropdown" data-bind="value: VehicleType">    
<option value="New" selected="selected">Nuevo</option>
<option value="Used">Usado</option>
</select> `

这个输入:
<input type="text" name="Mileage" data-bind="disable: VehicleType() === 'New',value:  Mileage" class="input-large"> `

如果选择的下拉列表中的值是 New,则必须禁用输入,如果使用,则应启用输入,但如果我输入一个值,observable 将获取该值,如果我将下拉值更改为 new,则 observable 必须为零.

最佳答案

View 模型中的手动订阅是处理此类问题的好方法。订阅可能如下所示:

this.VehicleType.subscribe(function(newValue) {
if (newValue === "New") {
this.Mileage(0);
}
}, this);

这是使用它的示例: http://jsfiddle.net/rniemeyer/h4cKC/

HTML:
<select name="VehicleType" id="vehicleTypeDropdown" data-bind="value: VehicleType">
<option value="New" selected="selected">Nuevo</option>
<option value="Used">Usado</option>
</select>

<input type="text" name="Mileage" data-bind="disable: VehicleType() === 'New', value: Mileage" class="input-large">
<hr/>

<pre data-bind="text: ko.toJSON($root, null, 2)"></pre>

JS:
var ViewModel = function() {
this.VehicleType = ko.observable();
this.Mileage = ko.observable();

this.VehicleType.subscribe(function(newValue) {
if (newValue === "New") {
this.Mileage(0);
}
}, this);
};

ko.applyBindings(new ViewModel());

关于data-binding - 在下拉更改 Knockout Js 上更改可观察值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12677431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com