繁体   English   中英

KnockOutJS 在下拉选择更改时显示隐藏元素

[英]KnockOutJS Show Hide elements on dropdown selection change

嗨,我正在尝试在 Knockout js 中获取下拉列表的选定值,以便我可以根据选择隐藏/显示其他元素。 以下是我尝试过的。 发生了什么我能够在按钮单击时获得正确的值,但在下拉选择更改时无法获得正确的值。

下面是我的代码。 该按钮给出了正确的值,但下拉选择更改事件给出了先前的值而不是选定的值。

JS

   function ViewModel() {
     var self = this;
     self.optionValues= ko.observableArray(["Test1", "Test2", "Test3"]);
     self.selectedValue = ko.observable();

     self.save = function() {
        alert(self.selectedValue());            
    }
   }

  ko.applyBindings(new ViewModel());

HTML

<select data-bind="event:{ change: save},options: optionValues, value: selectedValue"></select>

 <button data-bind="click: save">Save</button>

您应该直接subscribe selectedValue observable,而不是change事件绑定绑定,并从那里调用您的逻辑:

function ViewModel() {
  var self = this;
  self.optionValues = ko.observableArray(["Test1", "Test2", "Test3"]);
  self.selectedValue = ko.observable();
  self.selectedValue.subscribe(function(newValue) {
    self.save();
  });
  self.save = function() {
    alert(self.selectedValue());
  }
}
ko.applyBindings(new ViewModel());

网址:

<select data-bind="options: optionValues, value: selectedValue"></select>

<button data-bind="click: save">Save</button>

演示JSFiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM