Как узнать, установлен ли флажок SelectionInput в обратном вызове? - PullRequest
0 голосов
/ 23 мая 2018

Как узнать, установлен ли флажок SelectionInput в обратном вызове?У меня есть следующее:

section.addWidget(CardService.newSelectionInput()
                .setType(CardService.SelectionInputType.CHECK_BOX)
                .setFieldName("chkSaveAttachments")
                .addItem("Save Attachments", "chkSaveAttachmentsValue", true));

У меня есть кнопка на моей карте, которая вызывает обратный вызов.Из обратного вызова я могу получить доступ только к значению ("chkSaveAttachmentsValue"), но не могу сказать, установлен флажок или нет.

function saveCallback(e) {
  Logger.log(e.formInput.chkSaveAttachments); //prints "chkSaveAttachmentsValue"
  Logger.log(e.formInput.chkSaveAttachments.chkSaveAttachmentsValue) //undefined
  Logger.log(e.formInput.chkSaveAttachments.chkSaveAttachmentsValue.selected) //undefined
}

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Как указано здесь , formInputs свойство будет полезно здесь.

Для многозначных виджетов, таких как флажки, вы можете читать каждое значение из formInputs .

В formInputs все выбранные параметры будутбыть там в массиве (e.formInputs.chkSaveAttachments).Следовательно, в вашей функции saveCallback вы можете проверить как

e.formInputs.chkSaveAttachments.indexOf('chkSaveAttachmentsValue') > -1
0 голосов
/ 23 мая 2018

Вы можете получить состояние флажка, посмотрев на formInput в обратном вызове onChange.

CardService.newSelectionInput()
            .setType(CardService.SelectionInputType.CHECK_BOX)
            .setFieldName("chkSaveAttachments")
            .addItem("Save Attachments", "chkSaveAttachmentsValue", true).setOnChangeAction(selectionAction)

var selectionAction = CardService.newAction().setFunctionName("selectionAction").setParameters({"obj": obj});

function selectionAction(e) {
    //formInput value comes only when it is selected.
    var selected = !!e.formInput.chkSaveAttachments;
    // you can set and access paramters in the onchange action for further use.
    if(selected) {
    // cache the state using cacheservice
    } else {
    // cache the state using cacheservice
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...