Likert scale field
A matrix of statements rated on the same scale (e.g. Strongly disagree → Strongly agree). Common in surveys.
The Likert field renders multiple statements as rows, each rated on the same scale across columns (e.g. Strongly disagree, Disagree, Neutral, Agree, Strongly agree). Each row is stored as its own value, joined to the parent item via a configured naming scheme.
Common properties
| Property | Description |
|---|---|
labelstring | Visible label shown above the matrix. |
descriptionstring | Helper text. |
requiredboolean default: false | Marks the field required. |
readOnlyboolean default: false | Disables editing. |
Type-specific properties
| Property | Description |
|---|---|
likertRowsstring[] default: ['Question one', 'Question two', 'Question three'] | Row labels, one statement per question. Each row becomes its own rated value. |
likertScalestring[] default: ['Strongly disagree', 'Disagree', 'Neutral', 'Agree', 'Strongly agree'] | Column labels for the shared rating scale, applied to every row. Edited one label per line in the designer. |
JavaScript recipes
Read all row answers
// Each row is stored under its own SP internal name; read the whole form snapshot.
const answers = f365.data();
// answers['Q_SatisfactionRow1'] === 'Agree', etc.
React to a row changing
f365.events.onChange((e) => {
if (e.fieldKey === 'Q_RecommendRow') {
f365.ui.showToast(`You rated: ${String(e.newValue)}`, 'info');
}
});
Require every row before save
f365.events.onBeforeSave(async () => {
const rows = ['Q_QualityRow', 'Q_ValueRow', 'Q_SupportRow'];
const missing = rows.filter((key) => !f365.field(key).value);
if (missing.length > 0) {
return await f365.ui.showConfirm('Some rows are unrated. Submit anyway?');
}
return true;
});
Related
Related articles
- Rating field
Star-rating input, typically 1-5 or 1-10 stars. Stored as a number.
- Choice field
Single-select from a fixed list of options, rendered as a dropdown, a radio group, or compact pills.