0

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

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

如何在 javascript 中获取特定 HTML 标记的所有元素?

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

4

3 回答 3

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
于 2012-10-11T14:36:49.937 回答
0

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

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

将 [one of my checkboxen] 替换为复选框的名称(可能是 new_something),将 [my select all box] 替换为您的全选框的名称。

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

这不是一个理想的解决方案,因为每次添加或删除复选框时都必须不断更新代码,但它具有可以工作的优势。

于 2012-10-10T16:06:42.477 回答
0
var section = document.getElementById('a');
var fields = section.getElementsByTagName("input");


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

            fields[i].checked= true;


    }
于 2012-10-24T10:25:07.233 回答