我有一個情況,其中i有使用基因敲除結合的下拉列表:敲除的值綁定不更新時的jquery /關閉用於去除處理程序
<select id="RoleGroups" class="tableDropDown" data-bind="options: userGroups,
optionsText: 'group_nm',
optionsValue: 'group_cd',
value: selectedRoleGroup">
</select>
我有一個改變處理程序的下拉設置:
self.roleGroupChanged = function() {
//do stuff
return true;
};
當我更新下拉列表中的observable數組時,我將當前selectedRoleGroup observable重置爲默認值。我想,以防止roleGroupChanged處理程序在這種情況下開火,所以我下面的:
$('.tableDropDown').off('change');
//do stuff...set the dropdown value
$('#RoleGroups').on('change', self.roleGroupChanged);
我遇到的問題是可觀察到的值selectedRoleGroup現在沒有被下拉的變化時進行更新。我可以使用jquery獲取當前值,但是這會破壞使用knockout的目的。如果我刪除使用jquery的代碼和方法,一切都按預期工作,但處理程序觸發結果,這不是我想要的。尋找想法我做錯了什麼。
我並不完全相信綁定/解除綁定「更改」事件是解決您的問題的正確方法。如果我正確理解了您的需求,只需要將默認值設置爲'selectedRoleGroup',如果observable數組的內容更改? –