gpt4 book ai didi

javascript - 如何在 SENCHA/ext js 中启用来自另一个组合框的组合框?

转载 作者:行者123 更新时间:2023-11-30 21:07:13 26 4
gpt4 key购买 nike

我需要在 Sencha 中进行一些更改,我需要添加第二个组合框,该组合框在开始时必须禁用,这没问题,但是我需要第一个组合框在某些项目时启用第二个组合框( not all) 从第一个组合中选择,它看起来很简单。

代码如下:

var formPanel = new Ext.form.FormPanel({
id: 'formanchor-form',
title: 'Nuevo Gasto',
bodyStyle: 'padding:5px 5px 0',
width: 600,
defaults: {
width: 230
},
defaultType: 'textfield',
renderTo: 'formulario',
frame: true,
items: [{
xtype: 'combo',
typeAhead: true,
name: 'cboGasto',
id: 'cboGasto',
fieldLabel: 'Gastos',
store: storeCbo,
displayField: 'gasto',
valueField: 'codigo',
allowBlank: false,
width: 250,
mode: 'local',
triggerAction: 'all',
emptyText: 'SELECCIONE',
blankText: 'Debe seleccionar un gasto',
forceSelection: true
}, {
xtype: 'numberfield',
fieldLabel: 'Monto',
name: 'txtMonto',
id: 'txtMonto',
maxLength: 7,
allowBlank: false,
minValue: 100,
minText: 'El monto mínimo es 100',
maxValue: 9999999,
maxLengthText: 'El monto máximo es 9.999.999',
blankText: 'El monto es requerido',
width: 100
}, {
xtype: 'combo',
typeAhead: true,
name: 'CboDeudasReceptor',
id: 'CboDeudasReceptor',
fieldLabel: 'Receptor',
store: storeCboR,
displayField: 'receptor',
valueField: 'codigo',
allowBlank: false,
width: 250,
mode: 'local',
triggerAction: 'all',
emptyText: 'SELECCIONE',
blankText: 'Debe seleccionar un Receptor',
forceSelection: true,
disabled: true
}],
buttons: [{
text: 'Agregar',
handler: function() {
var mon = Ext.getCmp('txtMonto').getValue();
var gas = Ext.getCmp('cboGasto').getValue();
if (mon.length == 0) {
Ext.MessageBox.alert('Monto del Gasto', 'Debe Ingresar un monto para el gasto.');
Ext.getCmp('txtMonto').focus();
return false;
}
if (gas.length == 0) {
Ext.MessageBox.alert('Gasto', 'Debe Seleccionar un gasto.');
Ext.getCmp('cboGasto').focus();
return false;
}
location.href = 'ingresa_gastos_lib.asp?cboGasto=' + gas + '&txtMontoPesos=' + mon + '&' + params();
}
}, {
text: 'Volver',
handler: function() {
location.href = 'datos_deuda.asp?' + params();
}
}]
});

更新:

如果我在第一个组合中放置一个监听器,那么它会像我想要的那样部分工作,但是第二个组合只对下拉菜单起作用但看起来仍然像禁用的一样,我无法编辑。所以现在的问题是:如何让第二个组合框完全运行。

listeners: {
select: function(combo, record, index) {
if (Ext.getCmp('cboGasto').getRawValue() == 'RECEPTOR: EMBARGO') {
alert(Ext.getCmp('cboGasto').getRawValue());
Ext.getCmp('CboDeudasReceptor').disabled = false;
}
}
}

最佳答案

disabled 字段设置为 false 不是解决方案。它只是改变了对象中属性的值,但所有视觉样式仍然存在。您应该使用组合框的 setDisabled() 方法,或 enable()disabled() 方法。所以你的听众应该像下面这样:

select: function (combo, record, index) {
if (Ext.getCmp('cboGasto').getRawValue()=='RECEPTOR: EMBARGO'){
alert(Ext.getCmp('cboGasto').getRawValue());
Ext.getCmp('CboDeudasReceptor').setDisabled(false);
//Or Ext.getCmp('CboDeudasReceptor').enable();
}
}
}

关于javascript - 如何在 SENCHA/ext js 中启用来自另一个组合框的组合框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46494637/

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