release notes

SurveyJS v2.3.9

Released: September 30, 2025

SurveyJS v2.3.9 introduces support for specialized and composite question types in the Table View and includes big fixes and minor enhancements.

[Table View] Support for Specialized and Composite Question Types

Catching up with the Dashboard, the Table View also receives support for specialized and composite question types. For example, consider the following composite question:

import { ComponentCollection } from "survey-core";

ComponentCollection.Instance.add({
  name: "workEnvironmentFeedback",
  title: "Work Environment & Wellbeing",
  defaultQuestionTitle: "Please provide feedback on your work environment and wellbeing",
  elementsJSON: [
    { type: "rating", name: "workstationComfort", title: "How comfortable is your workstation?", rateMin: 1, rateMax: 5 },
    { type: "dropdown", name: "equipmentQuality", title: "Which equipment needs improvement?", choices: ["Laptop", "Monitor", "Chair", "Keyboard"], showNoneItem: true },
    { type: "radiogroup", name: "noiseLevel", title: "How would you describe the noise level in your work area?", choices: ["Quiet", "Moderate", "Noisy"] },
    { type: "rating", name: "workLifeBalance", title: "How do you rate your work-life balance?", rateMin: 1, rateMax: 5 },
    { type: "comment", name: "openFeedback", title: "Any additional feedback or suggestions?" }
  ]
});

Here's how this question is visualized in the Table View:

SurveyJS Talbe View: Composite question visualization

Open in Plunker

New Demo

Dashboard: AI Sentiment Analysis for Open-Ended Questions

New Blog Post

Edit and Validate Survey JSONs in Visual Studio Code

Bug Fixes and Minor Enhancements

Form Library

  • Yes/No (Boolean) question: The useTitleAsLabel property doesn't work (#10385)
  • [React 17] Dropdown with lazy loading doesn't load the next batch of choice options (#10401)
  • The pipe character ("|") cannot be used in survey element names and titles (#10424)
  • Dynamic Panel: When the panel number is bound to a value, empty panels are not restored after a page reload regardless of the value (#10406)
  • Empty expression validation rule doesn't allow submitting the survey (#10416)
  • Composite element: Questions in Dynamic Panel don't respect the visible: false setting at design time (#10421)
  • Recursive numbering shows incorrect number for the last element at design time (#10418)
  • Survey Creator: Cannot override page rendering in Preview tab (#10427)
  • Expressions cannot access Multiple Textboxes items within a Dynamic Panel (#10431)

Survey Creator

  • Toolbar layout shifts when tabs alternate between text and icons (#7076)

Dashboard

  • Filtering doesn't work in the Rating Scale question visualizer (#631)

How to Update SurveyJS Libraries in Your Application

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

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

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

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

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

Your cookie settings

We use cookies to make your browsing experience more convenient and personal. Some cookies are essential, while others help us analyse traffic. Your personal data and cookies may be used for ad personalization. By clicking “Accept All”, you consent to the use of all cookies as described in our Terms of Use and Privacy Statement. You can manage your preferences in “Cookie settings.”

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.