Как я могу установить флажок "выбрать все" в моей пользовательской форме CRM 4?

Я работаю над пользовательской формой CRM с многочисленными флажками, организованными по разделам. Я хотел бы реализовать функцию "выбрать все" в форме и пытаюсь понять, как отформатировать JavaScript. Мое исследование до сих пор указывало на возможность использования оператора FOR для итерации всех элементов в разделе, который я хочу обработать, с соответствующим установлением их значений, но я не уверен, какой метод document.getElements ... использовать.

Вот существующий вопрос SO, связанный с итерацией FOR, о которой я упоминал выше:

Как получить все элементы определенного тега HTML в JavaScript?

Я не уверен, что знаю, на какое имя тега мне нужно ссылаться для моих полей, используя этот метод. Они имеют тип BIT, это то же самое, что и имя тега? Я экспортировал файл настройки объекта и получил доступ к идентификатору класса для группы полей. Можно ли использовать метод для передачи этих данных?

3 ответа

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


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

            fields[i].checked= true;


    }

В вашей форме crm выберите изменить свойства для флажка "выбрать все" и добавьте следующее к методу изменения.

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

замените [один из моих флажков] на имя флажка (возможно, new_something) и [мой выбор всего окна] на имя вашего выбора все.

добавьте одну строку для каждого флажка, который вы хотите контролировать.

это не идеальное решение, так как вы должны обновлять код каждый раз, когда добавляете, а не снимать флажок, но у него есть преимущество в том, что он работает.

Я понял; используя DOM через JavaScript, я смог перебирать элементы-флажки в моем разделе формы.

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
Другие вопросы по тегам