我正在尝试更新之前没有使用过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分别编写从数据库中检索数据的功能。
现在,当我更改选择选项时,输入字段会更新,但在报告中,数据不会更新。
答案 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>