2015-11-03 786 views
1

這個問題似乎基本,但是不要緊我做什麼(基於SOV的各種帖子中,我經歷了)我只是不能得到這個事件在我Devextreme應用火JQuery的onBlur事件不觸發

的前提... 我想要做的就是用輸入的文本更新現有變量的值。變量的值從另一個頁面繼承。我需要從寫入文本框的文本更新變量的值。這就是我想要做的。

這裏是我的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); 
}); 

任何意見,將不勝感激

編輯

OK,我現在已經做了這個:

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

當綁定事件,''txtCode'',缺少'.'?或者只是'$('#txtCode')。on('blur',function(){' – Tushar

+0

也請確保在'#txtCode'內輸入'.txtCode'類 – Mitul

回答

0

使用事件,像這樣綁定:

$('.txtCode').on('blur', function ($this) { 
    // Code. 
} 
0

試試這個

$('body').on('blur', '#txtCode', function() { 
    CustomerCode = $("#txtCode").dxTextBox('option', 'value'); 

console.log(CustomerCode); 
}); 
1

您嘗試處理 '的div' 元素(id="txtCode")在blur事件。但此元素的焦點狀態不會更改,因此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/

+0

謝謝您的回覆謝爾蓋,但現在我得到錯誤說明我不能將綁定多次應用於同一個元素我使用新代碼更新了我的原始文章 –

+0

如果使用Devextreme應用程序項目模板,則不應該手動調用ko.applyBindings,因爲我之所以稱它爲我只用了knockoutjs。 – Sergey