release notes

SurveyJS v1.9.119

Released: November 28, 2023

SurveyJS v1.9.119 introduces a beta version of Survey Creator for Vue 3, a capability to ignore validation errors when switching between pages, an improvement of batch file upload, and other enhancements.

Survey Creator for Vue 3 (Beta)

We're thrilled to announce that Survey Creator for Vue 3 is in beta and ready for testing! This new component includes the same rich feature set as versions for other frameworks and is entirely rendered using the native Vue 3 rendering mechanism. Follow the link below to test Survey Creator for Vue 3. If you find a bug in the new component, please report an issue.

View CodeSandbox Example

Switch between pages with validation errors

In previous SurveyJS versions, respondents could not leave the current page if at least one question on it has a validation error. With the new release, you can allow respondents to freely navigate between pages regardless of whether validation errors are present or not. To enable this feature, set the SurveyModel's validationAllowSwitchPages property to true:

const survey = new Model(surveyJson);
survey.validationAllowSwitchPages = true;

Batch File Upload: Upload valid files and reject invalid files

In the new release, we've improved the batch file upload scenario for the File Upload question. You can now upload valid files and display error messages for invalid files in the same batch. Use the options.callback(files, errors) function within the onUploadFiles event handler to do this:

const survey = new Model(surveyJson);
survey.onUploadFiles.add((_, options) => {
    const formData = new FormData();
    options.files.forEach(file => {
        formData.append(file.name, file);
    });

    fetch("https://api.surveyjs.io/private/Surveys/uploadTempFiles", {
        method: "POST",
        body: formData
    })
    .then(response => response.json())
    .then(data => {
        const sourceFiles = {};
        options.files.forEach(file => sourceFiles[file.name] = { file: file, uploaded: false });
        const uploadedFiles = [];
        Object.keys(data).forEach(fileName => {
          const uploadedFile = sourceFiles[fileName];
          uploadedFiles.push({
            file: uploadedFile.file,
            content: "https://api.surveyjs.io/private/Surveys/getTempFile?name=" + data[fileName]
          });
          uploadedFile.uploaded = true;
        });
        const errorFiles = [];
        Object.keys(sourceFiles).forEach(fileName => {
          if(!sourceFiles[fileName].uploaded) {
            errorFiles.push(fileName + " could not be uploaded");
          }
        });

        options.callback(uploadedFiles, errorFiles);
    })
    .catch(error => {
        console.error("Error: ", error);
    });
});

Rating Scale: Display "maxRateDescription" and "minRateDescription" in drop-down mode

Rating Scale questions support maxRateDescription and minRateDescription properties, which add short textual descriptions to the highest and lowest rate values. Previously, these descriptions were hidden when rate values were displayed in a drop-down menu. The new release adapts the UI to display the descriptions in drop-down mode.

Survey Creator: Search bar in Property Grid

[Breaking Change] Survey header now occupies full container width

Previously, a survey header had the same width as the survey content by default. Since v1.9.119, the survey header occupies the full width of the survey container. This change allows the header to allocate sufficient space for large logo images out of the box. If your survey header should occupy the width of the survey content, explicitly set the header.inheritWidthFrom property to "survey" in your theme JSON schema:

{
  "header": {
    "inheritWidthFrom": "survey"
  }
}

If you use Theme Editor, switch the Header > Content area width editor to Same as survey for the same effect:

Survey Creator: Content area width in Property Grid

New and Updated Demos

Integration with Quill - Rich Content Editor

Bug Fixes

Form Library

  • A visibleIf condition works unexpectedly if question names contain dots (#7396)
  • A panel isn't displayed if it is collapsed and doesn't have a title in Survey Creator (#7401)
  • defaultValueExpression overrides survey.data values (v1.9.107 and later) (#7423)

Survey Creator

  • Multi-Select Matrix: Input mask is reverted to its previous value in the UI (#4690)
  • A survey logo appears incorrectly when it is defined in a locale different from the default (#4918)
  • Setting an overriding property on the survey logo property doesn't disable the logo upload (#4881)

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.