gpt4 book ai didi

javascript - 设置Ext.window.Window提供的禁止编辑字段

转载 作者:行者123 更新时间:2023-12-01 01:42:09 25 4
gpt4 key购买 nike

我需要在 Ext.window.Window 中设置禁止编辑文本字段,前提是下拉列表的值设置为“推迟”。

我尝试在 filterCombo 函数中执行此操作:

var inp = this.up ('window'). down ('# MyTextField');

inp.disable ();

但在控制台中我收到错误:类型错误:this.up 不是一个函数

我做错了什么?下面是我的代码:

var store = Ext.create('Ext.data.Store', {
fields: ['order', 'id', 'name'],
storeId: 'DoubleBookStore',
data : [
{"id": 23, name: "New", order_install: 1},
{"id": 24, name: "In Work", order_install: 2},
{"id": 29, name: "Postponed", order_install: 3},
{"id": 34, name: "Shipped", order_install: 4},
{"id": 31, name: "In_transit", order_install: 5}
]
});

function filterCombo(combobox, records) {
if(records.data.name == 'Postponed'){
var inp = this.up('window').down('#MyTextField');
console.log(inp);
inp.disable();
}
index = records.data.order_install;
store = combobox.getStore();
store.clearFilter();

store.filterBy(
function(record) {
if ((record.internalId == index - 1) || (record.internalId == index) || (record.internalId == index + 1)) {
return true;
} else {
return false;
}
}
);
};

var window = Ext.create('Ext.window.Window', {
title: 'Приложение',
width: 300,
height: 200,
items:[{
xtype: 'combobox',
fieldLabel: 'Status',
name: 'status',
store: store,
valueField: 'id',
displayField: 'name',
typeAhead: true,
queryMode: 'local',
value: 24,
listeners: {
select : function(combo, records) {
filterCombo(combo, records);
}
}

},
{
xtype: 'textfield',
fieldLabel: 'Ваше имя:',
itemId:'MyTextField',
name: 'name'
}]
});
window.show();

最佳答案

您不能在 select 函数的范围之外使用“this”,您已经将“this”作为参数“combobox”传递,因此请像这样使用它:

function filterCombo(combobox, records) {

var inp = combobox.up('window').down('#MyTextField');

if(records.data.name == 'Postponed'){
inp.disable();
} else {
inp.enable();
}
...

关于javascript - 设置Ext.window.Window提供的禁止编辑字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52299810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com