敲除输入绑定

时间:2016-11-05 07:35:45

标签: javascript knockout.js data-binding

我正在尝试更新之前没有使用过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分别编写从数据库中检索数据的功能。

现在,当我更改选择选项时,输入字段会更新,但在报告中,数据不会更新。

1 个答案:

答案 0 :(得分:0)

所以听起来淘汰赛并不知道你的元素已经改变了。在您的输入从未绑定事件更改后,您可以通过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>