release notes

SurveyJS v2.3.4

Released: August 26, 2025

SurveyJS v2.3.4 adds a new API event for intercepting or canceling expression evaluation, along with various bug fixes and minor enhancements.

Intercept or Cancel Expression Evaluation

In SurveyJS Form Library v2.3.4, a new onExpressionRunning event lets you intercept or cancel expression evaluation.

For example, the snippet below prevents conditional visibility expressions (visibleIf) from running:

import { Model } from "survey-core";
const surveyJson = { ... };
const survey = new Model(surveyJson);

survey.onExpressionRunning.add((_, options) => {
  if (options.propertyName === "visibleIf") {
    options.allow = false;
  }
});

Bug Fixes and Minor Enhancements

Form Library

  • Shadow DOM: Dropdown doesn't apply a filter and doesn't allow entering a space character (#10273)
  • The parentQuestion property doesn't contain a parent question instance for a question nested in a Dynamic Panel (#10210)
  • Single-Select Matrix: All rows remain invisible until the visibleIf condition for one of the rows evaluates to true (#10265)
  • Radio Button Group: Question-level comment value is copied to the Other item's value when individual choice comments are enabled (#10272)
  • Dynamic Matrix: {rowIndex} placeholder skips numbers when rows are conditionally hidden (#10279)
  • Survey Creator: Deprecated mode: "display" is added to survey JSON along with valid readOnly: true (#10281)

Survey Creator

  • Disabled toolbox items remain active (#7092)
  • Disabled tabs remain active (#7100)
  • A toolbox item doesn't apply a localized title for the default locale (#6334)
  • progressBarLocation values are not localized when a custom locale is applied (#7110)
  • Machine Translation dialog: The "Export to CSV" action produces a file that contains no translations (#7059)
  • Logic tab: The setValueExpression property is not updated after a logic rule is edited (#7097)
  • Subitem dropdown shows incorrect selected item (#7098)

Dashboard

  • VisualizationPanel: The trial banner is displayed within internal panels (#605)
  • Table View: Column actions display two tooltips at the same time (#602)

How to Update SurveyJS Libraries in Your Application

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

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

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

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

<script src="https://unpkg.com/survey-pdf@2.3.4/survey.pdf.min.js"></script>
<script src="https://unpkg.com/survey-pdf@2.3.4/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.