本文内容

  • 演示 CheckboxGroup 勾选、全选、反选和限制勾选
  • 运行结果
  • 说明
  • 修改记录

 

演示 CheckboxGroup 勾选、全选、反选和限制勾选

脚本
>
    ConstraintChkedNum = 3; // 自定义限制勾选的数量
    chkedId = [];
    var checkWeek = {
        SelectedAll: function(chkGrp) {
            var idx;
            var cbAll = Ext.getCmp(chkGrp.items.items[chkGrp.items.length - 2].id);
            for (idx = 0; idx < chkGrp.items.length - 1; idx++) {
                var cb = Ext.getCmp(chkGrp.items.items[idx].id);
                cb.setValue(cbAll.checked);
            }
        },
        Unselected: function(chkGrp) {
            var idx;
            for (idx = 0; idx < chkGrp.items.length - 2; idx++) {
                var cb = Ext.getCmp(chkGrp.items.items[idx].id);
                cb.setValue(!cb.checked);
            }
        },
        SelectedConstraint: function(chk) {
            if (chkedId.length >= ConstraintChkedNum) {
                if (chkedId.join(',').match(chk.id) && !chk.checked) {
                    chkedId.remove(chk.id)
                }
                else {
                    alert('最多勾选 ' + ConstraintChkedNum + ' 项.');
                    chk.suspendEvents();
                    chk.setValue(false);
                    chk.resumeEvents();
                }
            }
            else {
                if (chk.checked) chkedId.push(chk.id);
                else chkedId.remove(chk.id);
            }
        }
    }
</script>

相关文章: