Skip to main content
Question

Grouping Checkbox Tabs

  • November 21, 2024
  • 3 replies
  • 88 views

Forum|alt.badge.img+2

Using an an SDK to create an envelope. I need to have 2 checkboxes and want client to only be able to choose exactly 1 of those 2 checkboxes. Tried doing something with the group, but it still allows having both empty.

 

function makeEnvelopeCDM(email: string, name: string, document: any) {

const docusignAny = docusign as any;

const env = new docusignAny.EnvelopeDefinition();

env.emailSubject = 'Please sign this document set';



let doc = new docusignAny.Document.constructFromObject({

documentBase64: document,

name: 'Installer Quotation',

fileExtension: 'pdf',

documentId: '1',

});



env.documents = [doc];



let signer1 = docusignAny.Signer.constructFromObject({

email: email,

name: name,

recipientId: '1',

routingOrder: '1',

});



let signHere1 = docusignAny.SignHere.constructFromObject({

anchorString: 'Title',

anchorYOffset: '100',

anchorUnits: 'pixels',

anchorXOffset: '25',

});



let title = docusignAny.Title.constructFromObject({

anchorString: 'Title',

anchorYOffset: '0',

anchorUnits: 'pixels',

anchorXOffset: '45',

});



let dateSigned = docusignAny.DateSigned.constructFromObject({

anchorString: 'Title',

anchorYOffset: '56',

anchorUnits: 'pixels',

anchorXOffset: '24',

});



let nameTab = docusignAny.FullName.constructFromObject({

anchorString: 'Title',

anchorYOffset: '-25',

anchorUnits: 'pixels',

anchorXOffset: '17',

});



let checkboxTab1 = docusignAny.Checkbox.constructFromObject({

anchorString: 'Title',

anchorYOffset: '0',

anchorUnits: 'pixels',

anchorXOffset: '250',

tabLabel: 'Checkbox1',

});



let checkboxTab2 = docusignAny.Checkbox.constructFromObject({

anchorString: 'Title',

anchorYOffset: '26',

anchorUnits: 'pixels',

anchorXOffset: '250',

tabLabel: 'Checkbox2',

});



let checkboxGroup = docusignAny.TabGroup.constructFromObject({

groupLabel: 'CheckboxGroup',

tabScope: 'document',

minimumRequired: 1,

maximumAllowed: 1// groupRule: 'SelectExactlyOne', 

tabs: [checkboxTab1, checkboxTab2],

});



let signer1Tabs = docusignAny.Tabs.constructFromObject({

signHereTabs: [signHere1],

titleTabs: [title],

dateSignedTabs: [dateSigned],

fullNameTabs: [nameTab],

checkboxTabs: [checkboxTab1, checkboxTab2],

tabGroups: [checkboxGroup],

});



signer1.tabs = signer1Tabs;



let recipients = docusignAny.Recipients.constructFromObject({

signers: [signer1],

});



env.recipients = recipients;

env.status = 'sent';



return env;

}

 

3 replies

Forum|alt.badge.img+2

Hi ​@juurou 

To have 2 checkboxes and want the client to only be able to choose exactly 1 of those 2 checkboxes. Please uncomment groupRule in the checkboxGroup and use the value ‘SelectExactly’.


Forum|alt.badge.img+2
  • Author
  • Newcomer
  • 3 replies
  • November 23, 2024

Nothing’s changed, even though I have changed my code to this

 

function makeEnvelopeCDM(email: string, name: string, document: any) {
  const docusignAny = docusign as any;
  const env = new docusignAny.EnvelopeDefinition();
  env.emailSubject = 'Please sign this document set';

  let doc = new docusignAny.Document.constructFromObject({
    documentBase64: document,
    name: 'Installer Quotation',
    fileExtension: 'pdf',
    documentId: '1',
  });

  env.documents = [doc];

  let signer1 = docusignAny.Signer.constructFromObject({
    email: email,
    name: name,
    recipientId: '1',
    routingOrder: '1',
  });

  let signHere1 = docusignAny.SignHere.constructFromObject({
    anchorString: 'Title',
    anchorYOffset: '100',
    anchorUnits: 'pixels',
    anchorXOffset: '25',
  });

  let title = docusignAny.Title.constructFromObject({
    anchorString: 'Title',
    anchorYOffset: '0',
    anchorUnits: 'pixels',
    anchorXOffset: '45',
  });

  let dateSigned = docusignAny.DateSigned.constructFromObject({
    anchorString: 'Title',
    anchorYOffset: '56',
    anchorUnits: 'pixels',
    anchorXOffset: '24',
  });

  let nameTab = docusignAny.FullName.constructFromObject({
    anchorString: 'Title',
    anchorYOffset: '-25',
    anchorUnits: 'pixels',
    anchorXOffset: '17',
  });

  let checkboxTab1 = docusignAny.Checkbox.constructFromObject({
    anchorString: 'Title',
    anchorYOffset: '0',
    anchorUnits: 'pixels',
    anchorXOffset: '250',
    tabLabel: 'Checkbox1',
  });

  let checkboxTab2 = docusignAny.Checkbox.constructFromObject({
    anchorString: 'Title',
    anchorYOffset: '26',
    anchorUnits: 'pixels',
    anchorXOffset: '250',
    tabLabel: 'Checkbox2',
  });

  let checkboxGroup = docusignAny.TabGroup.constructFromObject({
    groupLabel: 'CheckboxGroup',
    tabScope: 'document',
    minimumRequired: 1,
    maximumAllowed: 1,
    groupRule: 'SelectExactly',
    tabs: [checkboxTab1, checkboxTab2],
  });

  let signer1Tabs = docusignAny.Tabs.constructFromObject({
    signHereTabs: [signHere1],
    titleTabs: [title],
    dateSignedTabs: [dateSigned],
    fullNameTabs: [nameTab],
    checkboxTabs: [checkboxTab1, checkboxTab2],
    tabGroups: [checkboxGroup],
  });

  signer1.tabs = signer1Tabs;

  let recipients = docusignAny.Recipients.constructFromObject({
    signers: [signer1],
  });

  env.recipients = recipients;
  env.status = 'sent';

  return env;
}

 


Forum|alt.badge.img+2

@juurou The checkbox tabs are missing the property (tabGroupLabels) and TabGroup does not have the property (tabs). Please update your checkbox tabs and tab group as follows.

 

  let checkboxTab1 = docusignAny.Checkbox.constructFromObject({
    anchorString: 'Title',
    anchorYOffset: '0',
    anchorUnits: 'pixels',
    anchorXOffset: '250',
    tabLabel: 'Checkbox1',
    tabGroupLabels: ['CheckboxGroup']
  });

  let checkboxTab2 = docusignAny.Checkbox.constructFromObject({
    anchorString: 'Title',
    anchorYOffset: '26',
    anchorUnits: 'pixels',
    anchorXOffset: '250',
    tabLabel: 'Checkbox2',
    tabGroupLabels: ['CheckboxGroup']
  });

  let checkboxGroup = docusignAny.TabGroup.constructFromObject({
    groupLabel: 'CheckboxGroup',
    tabScope: 'document',
    minimumRequired: '1',
    maximumAllowed: '1',
    groupRule: 'SelectExactly'
  });

Please consult the blog below to learn more.

https://www.docusign.com/blog/developers/tabs-deep-dive-checkboxes-and-radio-groups