输入绑定

Knockout input-binding

本文关键字:绑定 输入      更新时间:2023-09-26

我正在尝试更新一个没有使用Knockout的应用程序。当我们更改select选项时,很少有输入字段从服务器/数据库获取数据。现在,我正在尝试使用Knockout根据填写的输入字段生成一个报告。但是当这些输入字段从数据库获取数据时,它不会在UI上更新。例如,

<input type = "text" id = "ip1" data-bind = "value:ip1"></input>

从数据库中获取数据

在报告中,我试图更新从数据库收到的值。

<tr><td>Left Margin:</td><td><strong data-bind="text:ip1"></strong></td></tr>

视图模型:

function ViewModel() {
		self = this;
		self.ip1 = ko.observable();
};
var vm = new ViewModel();
ko.applyBindings(vm);

从数据库中检索数据的函数分别使用JavaScript、Ajax、PHP、xmlhttp编写。

现在当我更改选择选项时,输入字段正在更新,但在报告上,数据没有更新。

所以听起来像是knockout没有意识到元素已经更改。在未绑定事件的输入发生变化后,是否可以通过jquery强制进行更改?

jQuery('#myinput').change();

这里是我所做的,我有一个未绑定的按钮点击,改变绑定输入框的值。https://jsfiddle.net/othkss9s/30/

这里是javascript

function model() {
  var self = this;
  this.test = ko.observable("test");
};
var myViewModel = new model();
$(document).ready(function() {
  ko.applyBindings(myViewModel);
  $('#mybutton').click(function(event) {
    $('#myinput').val('changed from jquery');
    jQuery('#myinput').change();
  });
});
这里是html
<p>
  <input data-bind="textInput: test" id="myinput"> the value is:
  <label data-bind="text: test"></label>
</p>
<p>
  <button id="mybutton">
    change the value using jquery
  </button>
</p>