release notes

SurveyJS v2.1.1

Released: June 4, 2025

SurveyJS v2.1.1 adds support for exclusive options in Checkbox questions and includes bug fixes and minor enhancements.

Support for Exclusive Options in Checkbox Questions

An exclusive option clears all other selected choices in the same question when chosen. The Checkboxes question type in SurveyJS already supports predefined exclusive options, such as None, Refuse to Answer, and Don't Know. Starting with SurveyJS v2.1.1, you can make any option exclusive by enabling its isExclusive property. For example, the following code marks the "not-employed" option as exclusive:

const surveyJson = {
  "elements": [
    {
      "type": "checkbox",
      "name": "workplace-benefits",
      "title": "Which of the following benefits do you currently receive from your employer?",
      "description": "Select all that apply.",
      "choices": [
        "Health insurance",
        "Paid vacation",
        "Retirement plan",
        "Gym membership",
        "Company stock options",
        {
          "value": "not-employed",
          "text": "I am not currently employed",
          "isExclusive": true
        }
      ]
    }
  ]
}

To mark a choice option as exclusive in Survey Creator, locate the Choices table, click a Pen icon next to the desired option, and enable the Clear others when selected checkbox:

Survey Creator: 'Clear other when selected' option

To support exclusive options, the type of the choices property in the Checkboxes question has been changed from itemvalue[] to checkboxitem[]. If you previously checked a question's type using the getType() method, you should now use the isDescendantOf() method instead:

// Before SurveyJS v2.1.1
if (question.getType() === "itemvalue") {
  // ...  
}

// Starting with SurveyJS v2.1.1:
if (obj.isDescendantOf("itemvalue")) {
  //...
}

New Help Topics

Survey Creator: Loop and Merge with Multi-Select Dropdown and Dynamic Matrix

Bug Fixes and Minor Enhancements

Form Library

  • Multi-Select Dropdown (Tag Box) doesn't have an OK button when the drop-down list is in full screen mode (#9962)
  • Expression produces unexpected results when it references a matrix row that has the same name as its parent matrix (#9967)
  • Dynamic Panel: Using a combination of resetValueIf, visibleIf, and defaultValue for a nested question may result in an infinite loop error (#9956)

Survey Creator

  • [Accessibility] Dropdowns miss required ARIA attributes (#6929)
  • [Accessibility] Interactive controls must not be nested, but pop-up elements are nested within buttons in the Property Grid (#6931)
  • [Accessibility] Some ARIA attributes are prohibited for an element's role (#6928)
  • Property Grid: The order of properties in the Conditions category has changed (#6936)
  • Drag and Drop doesn't work with shadow DOM (#6930)
  • Page Navigator: Page 1 is always focused, even if another page is selected on the design surface (#6918)
  • Property Grid has no limit on its width and can be stretched to completely overlap the design surface (#6917)

How to Update SurveyJS Libraries in Your Application

Angular
npm i survey-core@2.1.1 survey-angular-ui@2.1.1 --save
npm i survey-creator-core@2.1.1 survey-creator-angular@2.1.1 --save
npm i survey-analytics@2.1.1 --save
npm i survey-pdf@2.1.1 --save
React
npm i survey-core@2.1.1 survey-react-ui@2.1.1 --save
npm i survey-creator-core@2.1.1 survey-creator-react@2.1.1 --save
npm i survey-analytics@2.1.1 --save
npm i survey-pdf@2.1.1 --save
Vue.js
npm i survey-core@2.1.1 survey-vue3-ui@2.1.1 --save
npm i survey-creator-core@2.1.1 survey-creator-vue@2.1.1 --save
npm i survey-analytics@2.1.1 --save
npm i survey-pdf@2.1.1 --save
HTML/CSS/JavaScript
<link href="https://unpkg.com/survey-core@2.1.1/survey-core.min.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/survey-core@2.1.1/survey.core.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/survey-js-ui@2.1.1/survey-js-ui.min.js"></script>

<script src="https://unpkg.com/survey-core@2.1.1/themes/index.min.js"></script>
<script src="https://unpkg.com/survey-creator-core@2.1.1/themes/index.min.js"></script>

<link href="https://unpkg.com/survey-creator-core@2.1.1/survey-creator-core.min.css" type="text/css" rel="stylesheet">
<script src="https://unpkg.com/survey-creator-core@2.1.1/survey-creator-core.min.js"></script>
<script src="https://unpkg.com/survey-creator-js@2.1.1/survey-creator-js.min.js"></script>

<link href="https://unpkg.com/survey-analytics@2.1.1/survey.analytics.min.css" rel="stylesheet">
<script src="https://unpkg.com/survey-analytics@2.1.1/survey.analytics.min.js"></script>

<script src="https://unpkg.com/survey-pdf@2.1.1/survey.pdf.min.js"></script>
<script src="https://unpkg.com/survey-pdf@2.1.1/pdf-form-filler.min.js"></script>

Your cookie settings

We use cookies on our site to make your browsing experience more convenient and personal. In some cases, they are essential to making the site work properly. By clicking "Accept All", you consent to the use of all cookies in accordance with our Terms of Use & Privacy Statement. However, you may visit "Cookie settings" to provide a controlled consent.

Your renewal subscription expires soon.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.

Your renewal subscription has expired.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.