JQuery onBlur事件没有解雇

时间:2015-11-03 08:47:03

标签: javascript jquery onblur

这个问题似乎是基本的但是我做的并不重要(基于我经历过的关于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。我该怎么办?

3 个答案:

答案 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);
});