用下拉击倒改变多个文本框
Changing multiple textboxes with dropdown knockout
我有以下HTML:
<select id="EmpName" data-bind="value: Employee.EmpName, event: { change: $root.updateEmployee }"></select>
<input disabled type="text" id="EmpNum" data-bind="value: Employee.EmpNum, valueUpdate: 'input'" />
<input disabled type="text" id="EmpClass" data-bind="value: Employee.EmpClass, valueUpdate: 'input'" />
<input disabled type="text" id="EmpDept" data-bind="value: Employee.EmpDept, valueUpdate: 'input' " />
<input disabled type="text" id="EmpStat" data-bind="value: Employee.EmpStat, valueUpdate: 'input'" />
它被以下ViewModel绑定:
generalViewModel = function (thisData) {
var self = this;
this.Incident = ko.mapping.fromJS(thisData.Incident);
this.Employee = ko.mapping.fromJS(thisData.Employee);
this.updateEmployee = function () {
var employeeName = self.Employee.EmpName;
$.getJSON('/Incidents/GetEmployee', { EmployeeName: employeeName }, function (data, status, xhr) {
var newEmp = ko.mapping.fromJS(data);
self.Employee(newEmp);
});
}
this.refreshData = function (incID) {
GetIncidentGeneralInfo(incID, node);
}
this.savetoServer = function (incID, buttonID) {
var incident = ko.toJSON(self.Incident);
var employee = ko.toJSON(self.Employee);
$.post('/Incidents/SaveIncident', { IncidentID: incID, JSONIncident: incident, JSONEmployee: employee, button: buttonID }, function (data, status, xhr) {
self.refreshData(data);
});
}
}
ko.applyBindings(new generalViewModel(data), document.getElementById(node));
除了updateEmployee函数之外,一切都运行得很好。JSON返回新的Employee信息,但是文本框没有更新。我做了一些愚蠢的错误,我不太明白
代替
var newEmp = ko.mapping.fromJS(data);
self.Employee(newEmp);
你应该做
ko.mapping.fromJS(data, self.Employee);
这将更新self.Employee
上所有由第一次调用ko.mapping.fromJS
创建的可观察属性
相关文章:
- 改变“;onClick"这个jQuery的操作从清除输入文本改为将输入文本添加到下面的列表中
- 用于根据用户改变文本区域的字体颜色的JavaScript'的选择
- 一个输入文本值基于另一个改变's(jquery autocomplete)值(经典ASP)
- 你能解决我的JQuery文本动画错误吗,导致错误的文本改变外观
- 如何在文本框中检查一个值,如果它没有't改变了3秒钟做某事,否则在3秒钟后再次检查
- 两个文本框同时改变[JQuery]
- Jquery改变文本框边框,但只有一次
- jQuery在选择选项时不改变文本
- 只改变标签'文本区域的颜色
- 改变颜色的文本点击使用jQuery
- 根据下拉菜单中的选择来改变段落文本——Angular
- 动态改变按钮的文本与javascript
- 当改变一个文本区域的值改变其他值
- 改变鼠标悬停时的KineticJS文本颜色
- JavaScript代码通过点击不同的图像来改变文本区域的值
- 我如何改变CKEditor,使它不会';< >在文本区域内
- 鼠标悬停在文本改变图像在固定位置- Wordpress
- 我如何使文本改变其他图像,然后用户鼠标悬停文本
- 输入文本改变脚本中的文本/字符串
- 当文本改变时,刷新图像