我正在尝试在“组件”对话框中实现“全选”复选框。 在选择/选中全选复选框时,应检查所有其他复选框。在取消选中/取消选中select-all复选框时,应取消选中所有其他复选框。
我写的监听器代码是
function()
{
var type = this.getValue();
var flag = true;
if(type==''){
flag = false;
}
if(!flag){
this.findParentByType('dialog').getField('./pricingVividBlack').defaultValue = false;
}
else{
this.findParentByType('dialog').getField('./pricingVividBlack').defaultValue = true;
}
}
请帮我纠正我的代码以实现功能。
答案 0 :(得分:3)
根据您的对话框结构,有很多方法可以实现此目的。
如果tabpanel /面板仅包含上述复选框,并且选择/取消选择应启用/禁用所有这些复选框,则以下代码应该可以解决问题。
function(field, val, isChecked) {
var panel = field.findParentByType('panel');
var selections = panel.findByType('selection');
if (isChecked) {
CQ.Ext.each(selections, function() {
if (this.isCheckbox) {
this.setValue(true);
}
});
} else {
CQ.Ext.each(selections, function() {
if (this.isCheckbox) {
this.setValue(false);
}
});
}
}
或者,您设置了一个额外的属性以仅识别需要此行为的字段,您可以使用该属性使用上述代码识别它们并相应地启用或禁用它们。
有关更多说明,请参阅CQ5 Widget API