如何在CRM 4自定义表单上实现“全选”复选框?

时间:2012-10-10 15:34:02

标签: javascript dynamics-crm-4

我正在开发一个自定义的CRM表单,其中包含多个按部分组织的复选框。我想在表单中实现“全选”功能,并尝试了解如何格式化JavaScript。到目前为止,我的研究已经指出了使用FOR语句迭代我想要处理的部分中的所有元素,相应地设置它们的值,但不确定要使用哪个document.getElements ...方法的可能性。

这是一个与我上面提到的FOR迭代相关的现有SO问题:

How do I get all elements of a particular HTML tag in javascript?

我不确定我知道我需要使用该方法为我的字段引用哪个标记名称。它们是BIT类型,与标签名称相同吗?我已经导出了实体的自定义文件,并且可以访问该组字段的类ID,是否有可以使用的方法,传递该数据?

3 个答案:

答案 0 :(得分:0)

在你的crm表单中为“全选”复选框选择更改保护,并将以下内容添加到on change方法

crmForm.all.[one of my checkboxen].DataValue = crmform.all.[my select all box].DataValue;

将[我的复选框之一]替换为复选框(可能是new_something)和[我选择所有复选框]的名称,并使用全选框的名称。

为您要控制的每个复选框添加一行。

这不是一个理想的解决方案,因为每次添加have删除复选框时都必须不断更新代码,但它具有适用的adaventage。

答案 1 :(得分:0)

我明白了;通过JavaScript使用DOM,我能够遍历表单部分中的复选框项。

var section = document.getElementById("{5d86cfd1-4612-e211-8c63-0015c5f7fc75}");
var fields = section.getElementsByTagName("input");

if (crmForm.all.tmi_selectallwtm.DataValue == true) {
    for (i = 0; i < fields.length; i++) {
        if (fields[i].className == "ms-crm-CheckBox") {
            fields[i].DataValue = true;
        }//end IF
        else {}

    }//end FOR
}//end IF
else {
    for (i = 0; i < fields.length; i++) {
        if (fields[i].className == "ms-crm-CheckBox") {
            fields[i].DataValue = false;
        }//end IF
        else {}
    }//end FOR
}//end ELSE

答案 2 :(得分:0)

var section = document.getElementById('a');
var fields = section.getElementsByTagName("input");


    for (i = 0; i < fields.length; i++) {

            fields[i].checked= true;


    }