Question Types Reference

8 min read

WittyForm supports 20 question types for quizzes. Each type has its own scoring behavior, validation options, and configuration properties. This reference covers every type in detail.

Multiple Choice (Single Answer)

Presents a list of options where only one can be selected. This is the most common quiz question type.

PropertyTypeDescription
optionsstring[]Array of answer choices
correctAnswernumberIndex of the correct option (0-based)
shuffleOptionsbooleanRandomize option order per attempt
pointsnumberPoints awarded for correct answer

Scoring: Full points for correct answer, zero for incorrect. No partial credit.

Checkboxes (Multiple Select)

Like multiple choice but allows selecting more than one option. Useful for "select all that apply" questions.

PropertyTypeDescription
optionsstring[]Array of answer choices
correctAnswersnumber[]Indices of all correct options
minSelectnumberMinimum selections required
maxSelectnumberMaximum selections allowed
partialCreditbooleanAward partial points for partially correct answers

Scoring: When partialCredit is enabled, points are calculated as (correct selections / total correct answers) × points, minus deductions for wrong selections.

True/False

A simplified multiple choice with exactly two options: True and False.

PropertyTypeDescription
correctAnswerbooleantrue or false
pointsnumberPoints for correct answer

Scoring: Full points for correct, zero for incorrect.

Short Answer

A single-line text input. Answers are compared against accepted values.

PropertyTypeDescription
acceptedAnswersstring[]List of accepted answer strings
caseSensitivebooleanWhether matching is case-sensitive
trimWhitespacebooleanIgnore leading/trailing whitespace
maxLengthnumberMaximum character count

Scoring: Full points if the response matches any accepted answer.

Long Answer

A multi-line text area for open-ended responses. Typically used in surveys or manually graded assessments.

PropertyTypeDescription
minLengthnumberMinimum character count
maxLengthnumberMaximum character count
placeholderstringPlaceholder text in the textarea
rowsnumberVisible rows (default: 4)

Scoring: Manual grading only. Cannot be auto-scored.

Fill in the Blank

Presents a sentence with one or more blanks that the respondent fills in. Type three underscores (___) wherever you want a blank to appear in the question text.

// Question text example
"The capital of France is ___ and it sits on the ___ river."

// Configuration
{
  "blanks": [
    { "acceptedAnswers": ["Paris", "paris"], "caseSensitive": false },
    { "acceptedAnswers": ["Seine", "seine"], "caseSensitive": false }
  ],
  "pointsPerBlank": 1
}

Scoring: Points awarded per correct blank. Total = pointsPerBlank × number of blanks.

Ranking

Respondents drag items into the correct order.

PropertyTypeDescription
correctOrderstring[]Items in the correct sequence
partialCreditbooleanAward points for each correctly placed item

Scoring: Full points for exact match, or partial points per correctly positioned item.

Picture Choice

Like multiple choice but each option is an image with an optional label.

PropertyTypeDescription
options{ imageUrl: string; label?: string }[]Image choices
correctAnswernumberIndex of the correct image
columnsnumberGrid columns (2, 3, or 4)
multiSelectbooleanAllow multiple image selections

Scoring: Same as multiple choice or multiple select depending on multiSelect.

Rating Scale

A numeric scale (for example, 1 to 5 stars or 1 to 10). Commonly used in surveys.

PropertyTypeDescription
minnumberMinimum value (default: 1)
maxnumberMaximum value (default: 5)
stepnumberIncrement step (default: 1)
stylestring"stars", "numbers", "slider", or "emoji"
labels{ min: string; max: string }Labels for endpoints (e.g., "Poor" / "Excellent")

Scoring: The selected value is used directly as the score, or mapped to a correct answer.

Matrix (Rating Grid)

A grid of rows and columns. Each row is a sub-question with the same set of column options.

PropertyTypeDescription
rowsstring[]Row labels (sub-questions)
columnsstring[]Column options
correctAnswersRecord<number, number>Map of row index to correct column index
multiplePerRowbooleanAllow selecting multiple columns per row

Scoring: Points awarded per correctly answered row.

Dropdown

A dropdown select menu. Functionally identical to multiple choice but takes less vertical space.

PropertyTypeDescription
optionsstring[]Dropdown choices
correctAnswernumberIndex of the correct option
placeholderstringPlaceholder text (default: "Select an option")
searchablebooleanEnable search filtering for long lists

Scoring: Same as multiple choice.

Date

A date picker input. Can be scored against a correct date or used for data collection.

PropertyTypeDescription
correctAnswerstringCorrect date in ISO 8601 format
minDatestringEarliest selectable date
maxDatestringLatest selectable date
formatstringDisplay format ("MM/DD/YYYY", "DD/MM/YYYY", etc.)

Scoring: Full points for exact date match.

Yes/No

A single-tap binary choice with exactly two options: Yes and No.

PropertyTypeDescription
correctAnswerbooleantrue for Yes, false for No
pointsnumberPoints for correct answer

Scoring: Full points for correct, zero for incorrect.

Star Rating

A row of stars the respondent taps to rate. Commonly used for satisfaction and feedback.

PropertyTypeDescription
maxnumberNumber of stars (default: 5)
allowHalfbooleanAllow half-star ratings

Scoring: The selected value is used directly, or mapped to a correct answer.

Opinion Scale

A horizontal row of numbered buttons (often 0 to 10) for measuring sentiment or agreement.

PropertyTypeDescription
minnumberLowest value (default: 0)
maxnumberHighest value (default: 10)
labels{ min: string; max: string }Labels for the endpoints

Scoring: The selected value is used directly as the score.

Slider

A draggable slider for selecting a value along a continuous range.

PropertyTypeDescription
minnumberMinimum value
maxnumberMaximum value
stepnumberIncrement step (default: 1)

Scoring: The selected value is used directly, or mapped to a correct answer.

NPS

A Net Promoter Score question. Respondents pick a value from 0 to 10 to rate how likely they are to recommend you.

PropertyTypeDescription
lowLabelstringLabel under the 0 end (e.g., "Not likely")
highLabelstringLabel under the 10 end (e.g., "Very likely")

Scoring: The selected value is recorded for NPS reporting (Promoters, Passives, Detractors).

Name

A field for collecting the respondent’s name. Used for data collection, leaderboards, and certificates.

PropertyTypeDescription
requiredbooleanWhether the field must be filled
placeholderstringPlaceholder text

Scoring: Not scored. Used for data collection.

Email

A field for collecting and validating an email address.

PropertyTypeDescription
requiredbooleanWhether the field must be filled
placeholderstringPlaceholder text

Scoring: Not scored. Validates email format on submit.

Phone

A field for collecting a phone number with formatting support.

PropertyTypeDescription
requiredbooleanWhether the field must be filled
placeholderstringPlaceholder text

Scoring: Not scored. Used for data collection.

$37 · paid once

Ready to Build Forms That Actually Convert?

Start free and keep the five forms for good, or pay once and unlock all of it — unlimited forms, ten team members, AI, CRM, white label and the API. No renewal, ever.

14-day money-backInstant accessNo subscription, ever
Question Types Reference