extjs - 更改事件之前的 extjs 无线电组
问题描述
在更改/检查 ExtJS radiogroup 上的事件之前,您能帮我吗?我希望在根据条件更改单选按钮之前检查一些事件。如果条件为 false,我需要允许用户更改选择另一个单选按钮,然后我们只需要选择旧单选按钮。
请参考以下代码:
Ext.application({
name: 'Fiddle',
launch: function () {
Ext.create('Ext.form.Panel', {
title: 'RadioGroup Example',
width: 300,
height: 125,
bodyPadding: 10,
renderTo: Ext.getBody(),
items: [{
xtype: 'radiogroup',
fieldLabel: 'Gender',
columns: 1,
items: [{
boxLabel: 'Male',
name: 'rb',
inputValue: '1'
}, {
boxLabel: 'Female',
name: 'rb',
inputValue: '2',
}],
listeners: {
change: function(field, newValue, oldValue, eOpts) {
console.log(newValue);
alert(newValue.rb);
},
}
}]
});
}
});
解决方案
如评论中所述,没有任何beforechange
事件可用于否决更改。
其他一些选项是:
您可以让
change
听众验证无线电组,如果选择了不正确的选项,则使其无效。通过这种方式,用户被动地被告知存在问题,他们必须修复它。您可以通过使用
oldvalue
参数获得您描述的行为,并将无线电控制设置回旧值:
change: function(field, newValue, oldValue, eOpts) {
if (<new value isn't acceptable>) {
// Probably should let the user know why
field.setValue(oldValue);
return;
}
... any other change logic here.
}
- 您还可以
change
在表单状态更改时抢先使用侦听器启用和禁用选项,从而防止用户首先做出错误的选择。
推荐阅读
- python - Python消息框程序
- asp.net - NET平台识别
- python - Windows更新后屏幕上的Pygame对象移动了吗?
- javascript - React Native:如何将 taskmanager 返回的 promise 中的值发送到 redux 商店?
- java - 为什么当 y>5 和 x=2 时这个带有 for 循环的程序给出零
- python - 如何根据分类值将时间序列拆分为固定长度的连续子集?
- processmaker - Processmaker 作曲家安装有错误
- latex - 如何在 pandoc 中移动“数字列表”(很多)
- reactjs - React Redux:更新对象数组中的项目
- javascript - 如何在Javascript中使用拼接方法获取未删除的数组元素