这个问题似乎是基本的但是我做的并不重要(基于我经历过的关于SOV的各种帖子)我只是无法在我的Devextreme应用程序中触发此事件
前提...... 我想要做的就是用输入的文本更新现有变量的值。变量的值从另一页继承。我需要从写入文本框的文本更新变量的值。这就是我想做的一切。
这是我的HTML代码:
<div class="dx-field-label">Code: </div>
<div class="dx-field-value" id="txtCode" data-bind="dxTextBox: { value: CustomerCode, placeholder: 'Enter Code', showClearButton: true }"></div>
</div>
这是我的JS代码:
var viewModel = {
// CustomerID: params.CustomerID,
// CustomerName: ko.observable(params.CustomerName),
//CustomerEmail: ko.observable(params.CustomerEmail),
// CustomerID: ko.observable(params.CustomerID),
Continue: function () {
alert('Saved');
},
CustomerID: CustomerID,
CustomerName: CustomerName,
CustomerCode: CustomerCode,
CustomerEmail: CustomerEmail,
AddCustomer: AddCustomer,
//Add Customer
};
$('#txtCode').on('blur', 'txtCode', function () {
CustomerCode = $("#txtCode").dxTextBox('option', 'value');
console.log(CustomerCode);
});
任何建议都将不胜感激
修改
好的,我现在已经这样做了:
CustomerID;
CustomerName.trim();
CustomerCode.trim();
CustomerEmail.trim();
ko.applyBindings({
ChangedCustomerCode: ko.observable(),
CodeFocusOut: function(e){
ChangedCustomerCode: value;
console.log(value);
console.log(ChangedCustomerCode);
CustomerCode: ChangedCustomerCode;
console.log(CustomerCode);
}
});
var viewModel = {
Continue: function () {
alert('Saved');
},
CustomerID: CustomerID,
CustomerName: CustomerName,
CustomerCode: CustomerCode,
CustomerEmail: CustomerEmail,
AddCustomer: AddCustomer,
};
return viewModel;
};
但它告诉我,我不能多次将绑定应用于同一个elemenet。我该怎么办?
答案 0 :(得分:1)
您尝试在&#39; div&#39;上处理blur
事件。元件(id="txtCode"
)。但是此元素的焦点状态不会更改,因此blur
事件不会触发。
实际上,如果您使用knockoutjs,则不应手动处理blur
事件。只需使用ko.observables:
<div data-bind="dxTextBox: { value: myValue, onValueChanged: valueChanged }"></div>
ko.applyBindings({
myValue: ko.observable(),
valueChanged: function(e){
alert(e.value);
}
});
看到这个小提琴 - http://jsfiddle.net/0284uz1f/2/
答案 1 :(得分:0)
像这样使用事件绑定:
$('.txtCode').on('blur', function ($this) {
// Code.
}
答案 2 :(得分:0)
试试这个
$('body').on('blur', '#txtCode', function () {
CustomerCode = $("#txtCode").dxTextBox('option', 'value');
console.log(CustomerCode);
});