extjs - 在 Ext JS 中的无线电组上添加事件处理程序
问题描述
我想添加一个事件,如果我单击单个 IP 单选按钮,一个 IP 地址字段应该出现在表单中,如果我单击 IP 范围单选按钮,那么两个 IP 地址字段应该出现,即“来自:”和“到: ”。我已将项目 ID 用于 IP 字段。但这对我不起作用。我在控制器文件中定义了“modifiedIpRange”。
{
xtype: 'radiogroup',
fieldLabel: 'Type',
name: 'type',
items: [{
boxLabel: 'Single IP',
inputValue: 'SINGLE',
checked: true,
},{
boxLabel: 'IP Range',
inputValue: 'RANGE'
}]
listeners: {
change: 'modifiedIpRange'
}
}
modifiedIpRange: function(item, newVal, oldVal) {
switch (newVal.type){
case 'SINGLE': Ext.ComponentQuery.query('#ipField')[0].setHidden(false) && Ext.ComponentQuery.query('#startIpField')[0].setHidden(true) && Ext.ComponentQuery.query('#endIpField')[0].setHidden(true);
break;
case 'RANGE': Ext.ComponentQuery.query('#startIpField')[0].setHidden(false) && Ext.ComponentQuery.query('#endIpField')[0].setHidden(false) && Ext.ComponentQuery.query('#ipField')[0].setHidden(true);
break;
}
},
解决方案
像这样的东西?:
var rgChange = function(item, newVal, oldVal) {
switch (newVal.type){
case '1': Ext.get('txt2').hide();
break;
case '2': Ext.get('txt2').show();
break;
}
};
Ext.create('Ext.form.Panel', {
title: 'RadioGroup Example',
width: 500,
height: 325,
bodyPadding: 10,
renderTo: Ext.getBody(),
items:[
{
xtype: 'radiogroup',
fieldLabel: 'Type',
name: 'type',
items: [{
boxLabel: 'Single IP',
inputValue: '1',
checked: true,
},{
boxLabel: 'IP Range',
inputValue: '2'
}],
listeners: {
change: {
fn: rgChange
}
},
},
{
xtype:'textfield',
id: 'txt1',
fieldLabel:'From'
},
{
xtype:'textfield',
id: 'txt2',
fieldLabel: 'to',
hidden:true
},
]
});
推荐阅读
- docker - “颤振测试”在 docker 映像上失败,但在本地成功
- html - 单选按钮的“值”属性的含义
- python-3.x - 如何获取网页抓取的链接
- azure-devops - Azure DevOps Pipeline 的另一个说明:-d--- 和 -a--- 模式
- asp.net - 程序集使用 'System.Runtime' 版本 = 4.2.2.0,它的版本高于引用的程序集 'System.Runtime' 版本 = 4.1.2.0
- azure - 错误 CS0122:“TimelineEditor.window”由于其保护级别而无法访问
- java - 如何在 Java 中将多个网格从文本文件读取到二维数组?
- r - R中线性回归的MH算法的实现
- r - 能否获得 R 的 TidyModel 框架中随机森林模型的袋外误差?
- python - 在python中查找局域网上另一台计算机的IP地址