ngSurvey
  • ✔️ What is ngSurvey ?
  • ❔Help on Help
  • 📁Projects
    • Creating a New Survey
    • Folders
      • Project Trashcan
    • Survey Information
    • Survey Search
    • Collaboration
    • Import / Export
      • JSON Survey Export / Import
      • XLSForm
        • Survey Sheet
          • Types
          • Groups
          • Appearances
          • Relevant
          • Constraint
          • Calculations
          • Multi-Languages
          • Choice filters (Casacade)
        • Choices Sheet
        • Settings Sheet
        • XLSForm Samples
  • 📄Forms / Surveys
    • Overview Dashboard
      • Dashboard Title
      • Dashboard Information Box
      • Dashboard Reports
      • Last Respondents
      • Last Sentiments
    • Form Designer
      • Questions
        • Creating a Question
        • Editing a Question
          • Question Preset Styles
        • Question Properties
          • Conversation reply type
            • Auto reply type
          • Question Branching
          • Skip / Hide Logic
        • Question Types
          • Standard
            • Single Choice
            • Multiple Choice
            • Image Choices
            • Dropdown List
            • Autocomplete
            • Text / Comment Field
          • Matrix Questions
            • Columns / Rows Sums
            • Single Matrix
            • Multi Matrix
            • Mobile Rendering
          • Satisfaction Questions
            • Net Promoter Score® Question
              • Understanding the Net Promoter Score® (NPS)
            • CSAT Score
              • Understating CSAT Score
            • CES Score
              • Understanding CES
            • Star Rating
            • Smileys
            • Thumbs Up / Down
          • Choice-Based Conjoint (CBC)
            • Create a Conjoint Question
            • Design Experiments
              • Balanced Design
              • Manual Design
              • Import Design
            • Reporting / Export
          • Advanced Types
            • Appointment Calendar
            • Constant Sum
            • Answer Ranking
            • Slider Scale
            • File Upload
            • Hidden Question
            • Contact Details
          • Questions Generator
          • Smart Generator
        • Question Blocks
        • Static / Images Content
        • Rating
        • Panel Linking
          • Panel Auto Filling
          • Panel Updating
      • Answers
        • Adding an Answer
        • Editing an Answer
        • Answer Properties
          • Field Properties
          • Reporting / Exports
          • Skip / Hide Logic
          • Entry Validation
        • Answer Types
          • Creating New Type
            • Custom Validation Code
            • Lists
              • JSON / REST API Lists
              • SQL Server Lists
                • Parent / Child Related Lists
                • SQL Parameters
              • List Items
            • Widgets
              • Widget Samples
                • Widget Definitions
                • Basic Field
                • Multiple input type
                • Basic Selection
                • Material Date
                • Material selection
                • Total Score Per Page
          • Selection Answers
            • Checkbox
            • Radio Button
          • Other selection
          • Entry Field
          • Password
          • Captcha
          • Calendar Date
          • Calendar time
          • Compare Field
          • Countries
          • Email
          • Email Validator
          • Hidden Field
          • File Upload
          • Language Selector
          • Phone Confirmation
          • Signature Pad
          • Slider
          • Constant sum
          • Constant sum total
          • Ranking Field
          • Ranking drag / drop
          • Text label
          • Time Picker
          • Appointment Calendar
      • Pages
        • Page Branching
        • Skip / Hide Logic
        • Conditional Redirection
        • Thanks / End Page
          • Redirection URL
          • Conditional Thanks Message
        • Page Looping
          • Looping Pipes
        • Pages Navigator
      • Multi-Language Forms
        • Setup multi-languages
        • Import / Export
        • Auto-translation
        • Resources
      • Survey Properties
        • Progress Completion
          • Respondent Answers Update
        • Single Question Flow
          • Flow Animation Transitions
        • Privacy
          • Privacy checklist
        • Quotas
        • Kiosk
        • Form Code
        • Survey Security
      • Footer Manager
      • Repeatable Sections
      • Rich Text Editor
        • Rich Attributes
      • Piping
        • Text / Data Piping
        • Carry Forward Answers
      • Preview / Testing
        • Pref-filled answers
      • Form Trashcan
      • Scoring
      • Timer
      • Conditions
        • Condition Groups
        • Conditions Rules
          • Question Conditions
          • Javascript Conditions
      • Geolocation
        • Browser Location
        • IP Address Location
        • Location Reporting
      • Google Analytics
        • Google Analytics Events
    • Flow Logic Graph
      • Page Branching Graph
      • Question Branching Graph
    • Security
      • Security Items
        • Active Directory Security
        • Azure Active Directory Security
        • Auth0 Security
        • Captcha
        • CAS Authentication
        • HTTP Function
          • Azure Function Login Sample
        • Invitation Code
        • IP Protection
        • IP Access Control
        • Local Users Security
        • OpenId Connect
        • Panel Security
          • Panelist Mapping
        • Password
        • Quota Restrictions
        • Tokens
          • Token Generator
            • Individual Entry
            • Automatic Generator
            • CSV File
          • Token Manager
          • Token and Querystring
          • Token Hierarchy / Permissions
        • Referer
        • SQL Security
      • Key Provider
      • Data Attributes
    • Style / Branding
      • Style Library
      • Style Editor
        • Style
          • Header / Footer
          • Header Logo Image
        • Theme
        • Elements
        • CSS
          • CSS Classes
          • CSS Rating Sample
        • Mobile / Responsive Design
        • Custom Font
      • Media Gallery
    • Tasks
      • Task Items
        • Completion Alerts
        • Google Sheet Task
        • SQL Query Task
        • Webhooks
          • Webhooks payload transform
      • Triggers
    • Publish
      • Web Link
      • Offline Survey
        • Uploading respondents
      • Embed Form
      • QR Code
      • Word Format Export
      • Website Intercepts
        • How to implement intercepts
        • Intercept Hosts
        • Intercepts
          • Intercept Properties
          • Intercept Layout
          • Intercept Triggers
          • Multi-Language Intercepts
          • Intercept Display Formats
      • Page
    • Campaigns
      • Information Box
      • Campaign
        • Email Distribution
          • Email List
          • Import Emails
        • Panel Members Distribution
        • Mobile Phone Distribution
          • SMS Distribution
          • WhatsApp Distribution
            • WhatsApp Invitations
            • WhatsApp Conversation
          • Phone Number List
          • Import Phones
        • Invitation Message
          • Invitation Piping Tags
          • Embedding a Question
          • WhatsApp Template
        • Reminders
          • One time reminders
        • Schedules
        • Virtual Campaign
        • Campaign Results
      • Campaign Batches
      • Invitation Templates
      • REST Trigger
    • Respondents
      • Respondent Details
      • Editing Respondent Answers
      • Respondents Status
      • Archived Respondents
      • Actions Links
    • Reporting
      • Default Report
      • Report Builder
        • Report Items
          • Bar Chart
          • Pie Chart
          • Free Text Report
          • Sentiment Index
          • Net Promoter Score®
          • Historical Trends Chart
          • Cross Tabulation
          • Tag Clouds
          • T.U.R.F
          • Ranking Report
          • Constant Sum Report
          • Languages Chart
          • Location Chart
      • Text Reports
        • Sentiment Analysis
      • Report Filters
      • Test Data Generator
      • Historical Trends
      • Files Vault
      • Multi-Language Report
      • Reporting Printing
    • Data Exports / Imports
      • Data Exports
        • Export Jobs
        • CSV / Excel
          • Excel
          • CSV Individual Answers
          • CSV Separated Selection / Fields
          • Questions as Rows
        • SPSS / SAV
        • JSON
        • Aggregated Results
        • Word Respondents
        • Export Templates
      • Data Imports
      • Variables
    • Data Access
    • Activity Log
  • 💬Conversational Surveys
    • Get Conversation Started
    • Conversation Questions
      • Answer Reply
      • Text Reply
      • File Upload
      • NPS
      • CSAT
      • CES
      • Language Reply
    • Conversation Commands
    • WhatsApp Conversations
    • Unifonic Template Message
  • 📖Shared Sessions Surveys
    • Sessions
  • ✨AI Suite
    • AI Generated Survey
    • Smart Questions Generator
    • Smart Answers Suggestions
    • Smart Analysis
    • Smart Columns
      • Smart Columns Properties
      • Smart Works
        • Custom Prompt
        • Translation
        • NPS
        • Sentiment
        • Labels
  • 👪Panels
    • Panel Connectors
      • Built-in Connector
        • Import panelist from CSV
      • Database Connector
    • Panel information
    • Panelists
    • Panel Views
    • Panel Attributes
    • Entry Approvals
    • Panelist Surveys
    • Panel Properties
  • 👤Personal Account
    • Account Settings
    • Developer
      • API Connection Sample
        • Get Survey From API
      • Power Apps / Logic App Flow Integration
        • Connector Setup
        • Connector / Mail Example
      • Zapier.com Connection
  • 🔐Access Control
    • Users
    • Groups
    • Roles
      • Rights
  • 🔑Data Encryption
    • Encryption Setup
      • Transparent Encryption
        • Azure Encryption Setup
        • IIS Encryption Setup
      • PGP Encryption
    • Data Classification
      • Internal
      • Sensitive
      • Restricted
    • Respondent Answers Encryption
    • File Upload Encryption
    • Campaign Encryption
  • 🕸️ Tenants
  • 🚀On-Site Setup
    • Enterprise Edition Installation
      • Docker
        • Filesystem Storage
      • Microsoft Azure
      • Amazon Web Services
        • AWS Elastic Beanstalk
          • AWS EBS / STAND ALONE SQL SERVER
          • AWS EBS / SQL Server
        • Cognito
        • LightSail
      • Microsoft IIS
        • Azure KeyVault
        • Update / Upgrade
      • ZIP Archive
      • Linux (Ubuntu / CentOS)
        • Linux SSL
      • Database Backend
        • Microsoft SQL Server
        • Oracle MySQL
        • MariaDB
        • PostgreSQL
      • WhatsApp Messenging
        • Twilio
        • Unifonic
      • Cluster / Scale out setup
      • Microsoft Entra / Azure AD
        • Entra Setup
        • Register Entra Users
      • Active Directory
        • Active Directory Setup
        • Register Active Directory Users
      • Environment Variable Settings
      • Content Security Policy (CSP)
      • Cross Origins Setup (CORS)
    • System Settings
      • General
      • Mailing Server
        • SMTP Mailing Server
        • IIS SMTP / Exchange Server
        • Postmark
        • Twilio / Sendgrid
        • MailJet
      • Account Security
      • Connections vault
      • AI Suite Provider
        • OpenAI
        • Azure AI
      • Third Party APIs
        • Microsoft
        • IPStack
      • Google
        • Captcha Setup
        • Google Web Font
        • Service Account
      • Azure Entra Settings
      • Active Directory Settings
      • OpenId Connect Settings
      • Mobile Messenging
        • Twilio
        • HTTP SMS Messenging
        • Amazon SNS
        • Unifonic
      • Translations
      • File Storage
      • Bounce Account
    • White-Label
    • Register Trial Copy
    • Upgrades
    • Release Notes
    • Change log
  • 📚Walkthroughs
    • Quick create survey start
    • Translate a survey
    • Rename a survey
    • Restore a deleted survey
    • Invite respondents to a survey
    • Capture value from query string
    • Share a survey with other users
    • Using token in email campaigns
    • Using a campaign with MailChimp
    • Power BI Integration
      • Link data to Power BI
      • Reporting with Power BI
    • Tableau Integration
      • Link data to Tableau
        • Reporting with Tableau
    • Link existing SQL table to a survey
    • Send invitations using an existing SQL Table
    • Export data to Excel
    • Export data to R
    • Zendesk integration
  • ©️ Copyrights / EULA
    • License
    • Copyrights and disclaimers
Powered by GitBook

(c) 2024 Data Illusion Zumbrunn. All rights reserved. Reproduction strictly forbidden.

On this page
  • 👨‍💻️ What are Javascript conditions ?
  • 📚 Helper functions
  • ⚠️ Known limitations

Was this helpful?

  1. Forms / Surveys
  2. Form Designer
  3. Conditions
  4. Conditions Rules

Javascript Conditions

PreviousQuestion ConditionsNextGeolocation

Last updated 4 years ago

Was this helpful?

👨‍💻️ What are Javascript conditions ?

Using javascript conditions you can define your conditions rules using the Javascript language. The javascript conditions free you up from the predefined conditions offered by the user interface and gives you a complete freedom to write your own conditions using native Javascript statements and operators.

The code of your javascript condition must return either true if the condition rule should be successfully evaluated or false it it failed.

You may use following presets objects in your code

  • respondentAnswers are the current respondent answers array.

  • languageCode is the current selected language string of the respondent.

  • answers are the current answers array of the survey.,

RespondentAnswer {
  answerId: string;
  respondentId: string;
  sectionNumber: number;
  value: string;
  disabled: boolean;
  authorizationToken: string;
}
 Answer {
  id: string;
  questionId: string;
  answerTypeId: string;
  text: string;
  pipeAlias:string;
  }

Following code will loop through the current respondent answers and check that the answer with id "answerid1234" has been selected by the respondent.

for (var i=0;i<respondentAnswers.length;i++){
  if (respondentAnswers[i].answerId == 'answerid1234') {
     return true;
  }
}
return false;

You may use the question / answer helper function selector to get the questions or answers id

You may use the Test code button to test your code with an empty set of respondent answers.

📚 Helper functions

To avoid lengthy repetitive code you may also use following helper functions.

  • isAnswerAnswered(answerId, textValue) returns true if the answer has been selected or entered by the respondent. You may also supply the option textValue to compare the respondent entered text to a given text.

  • isQuestionAnswered(questionId) will return true if any answers has been selected or entered for the question.

Following sample checks that the answer with id "MCf35sd_UXTarDERxRHa" has its value set to ngSurvey.

return isAnswerAnswered('MCf35sd_UXTarDERxRHa', 'ngSurvey');

⚠️ Known limitations

Please note that this feature has currently following limitations that should be lifted in a coming release.

  • The engine currently supports only ECMAScript 5. As such do not use any language statements that are not based on ECMAScript 5 standards.

  • As the javascript conditions are running as well on the server side do not use any browser specific objects like window, console etc.. as these can't be evaluated on the server side as there is no browser.

If you make a copy of your survey using the features you will need to set back the question and answers ids of your javascript condition manually to the newly created one in your cloned survey.

If you really need to use browser objects and the latest Javascript language statements / operators you may do so by turning off the server side validation in your . Note that in such a case no more server side validation will be done to enforce the question / answers validity of your respondent answers.

📄
condition rules
clone
survey properties