PageSourceSearch

https://docs.checkflow.io/assets/js/d9261f9e.82e19eae.js

js checkflow.io collected 2026-10-04 10:31:58 UTC 11,208 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkcheck_flow_docs||=[]).push([[9565],{9639(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"controls/short-text","title":"Short Text Control","description":"The Short Text control captures a single line of text from the user, with optional required and regular expression validation.","source":"@site/docs/controls/short-text.md","sourceDirName":"controls","slug":"/controls/short-text","permalink":"/docs/controls/short-text","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedAt":1786746690000,"frontMatter":{"id":"short-text","title":"Short Text Control","sidebar_label":"Short Text","description":"The Short Text control captures a single line of text from the user, with optional required and regular expression validation."},"sidebar":"docs","previous":{"title":"Separator","permalink":"/docs/controls/separator"},"next":{"title":"Long Text","permalink":"/docs/controls/long-text"}}');var r=n(4848),o=n(8453);const i={id:"short-text",title:"Short Text Control",sidebar_label:"Short Text",description:"The Short Text control captures a single line of text from the user, with optional required and regular expression validation."},l=void 0,a={},d=[{value:"Add to the Template",id:"add-to-the-template",level:2},{value:"Required",id:"required",level:3},{value:"RegEx Validation",id:"regex-validation",level:3},{value:"Populating from a Data Set",id:"populating-from-a-data-set",level:2}
1,{value:"Use in the Checklist",id:"use-in-the-checklist",level:2},{value:"Validation",id:"validation",level:2},{value:"Conditional Logic",id:"conditional-logic",level:2},{value:"Dynamic Values and Parameters",id:"dynamic-values-and-parameters",level:2},{value:"Linked Checklists",id:"linked-checklists",level:2},{value:"Reporting",id:"reporting",level:2},{value:"Limits",id:"limits",level:2},{value:"Related Pages",id:"related-pages",level:2}];function h(e){const t={a:"a",admonition:"admonition",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:"The Short Text control captures a single line of text from the user."}),"\n",(0,r.jsxs)(t.p,{children:["It consists of a single-line text box and a label. The label tells the user what to enter \u2014 for example ",(0,r.jsx)(t.em,{children:"Purchase Order Number"})," or ",(0,r.jsx)(t.em,{children:"Customer Reference"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["For longer, multi-line answers use the ",(0,r.jsx)(t.a,{href:"/docs/controls/long-text",children:"Long Text"})," control instead."]}),"\n",(0,r.jsx)(t.h2,{id:"add-to-the-template",children:"Add to the Template"}),"\n",(0,r.jsx)(t.p,{children:"The Short Text control can be added from the controls toolbar in the Template."}),"\n",(0,r.jsxs)(t.p,{children:["Once you have added the control you must set the ",(0,r.jsx)(t.strong,{children:"label"})," text that will be displayed above the text box. The label is required \u2014 it is also the name used to identify the control elsewhere in CheckFlow, such as in reports and dynamic values."]}),"\n",(0,r.jsx)(t.h3,{id:"required",children:"Required"}),"\n",(0,r.jsxs)(t.p,{children:["Tick the ",(0,r.jsx)(t.strong,{children:"Required"})," checkbox if the user must enter a value before the parent task can be completed."]}),"\n",(0,r.jsx)(t.h3,{id:"regex-validation",children:"RegEx Validation"}),"\n",(0,r.jsx)(t.p,{children:"You can enforce a specific format by adding a regular expression. This is useful when an answer must follow a known pattern \u2014 an order number, a postcode, an employee ID, a serial number."}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Add RegEx Validation"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Enter the ",(0,r.jsx)(t.strong,{children:"regular expression"})," the answer must match."]}),"\n",(0,r.jsxs)(t.li,{children:["Enter the ",(0,r.jsx)(t.strong,{children:"validation message"})," the user will see if their entry does not match. Write this in plain language, for example ",(0,r.jsx)(t.em,{children:'"Please enter a valid order number (3 letters followed by 6 digits)."'})]}),"\n",(0,r.jsxs)(t.li,{children:["Save the popup. The expression is displayed beneath the control in the template designer, and the button changes to ",(0,r.jsx)(t.strong,{children:"Edit RegEx Validation"}),"."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"The pattern is checked in the browser as the user fills the control in, and again when the task is completed."}),"\n",(0,r.jsx)(t.admonition,{type:"note",children:(0,r.jsxs)(t.p,{children:["RegEx validation only applies when the user has entered something. An empty Short Text control is not checked against the pattern unless the control is also marked as ",(0,r.jsx)(t.strong,{children:"Required"}),"."]})}),"\n",(0,r.jsx)(t.h2,{id:"populating-from-a-data-set",children:"Populating from a Data Set"}),"\n",(0,r.jsxs)(t.p,{children:["The Short Text control cannot be linked to a ",(0,r.jsx)(t.a,{href:"/docs/data-sets/overview",children:"Data Set"}),". Only the ",(0,r.jsx)(t.a,{href:"/docs/controls/drop-down",children:"Dropdown"}),", ",(0,r.jsx)(t.a,{href:"/docs/controls/multi-choice",children:"Multi-Choice"}),", ",(0,r.jsx)(t.a,{href:"/docs/controls/sub-tasks",children:"Sub-Tasks"})," and ",(0,r.jsx)(t.a,{href:"/docs/controls/table",children:"Table"})," controls can be."]}
1),"\n",(0,r.jsx)(t.h2,{id:"use-in-the-checklist",children:"Use in the Checklist"}),"\n",(0,r.jsx)(t.p,{children:"The user sees the label with a single-line text box beneath it. Their entry is saved automatically as they type, and the control records who last changed it and when."}),"\n",(0,r.jsx)(t.h2,{id:"validation",children:"Validation"}),"\n",(0,r.jsx)(t.p,{children:"When a Short Text control is marked as required, validation is performed when the user completes the task. The task cannot be completed until a value has been entered."}),"\n",(0,r.jsx)(t.p,{children:"Validation error messages are shown below the text box."}),"\n",(0,r.jsx)(t.p,{children:"If you try to complete a task outside of the checklist (e.g. from the Dashboard) and it fails validation we will notify you of the validation failure via a pop-up message."}),"\n",(0,r.jsx)(t.h2,{id:"conditional-logic",children:"Conditional Logic"}),"\n",(0,r.jsxs)(t.p,{children:["A Short Text control can be used to drive ",(0,r.jsx)(t.a,{href:"/docs/templates/conditional-logic",children:"Conditional Logic"}),". The available conditions are ",(0,r.jsx)(t.strong,{children:"is"}),", ",(0,r.jsx)(t.strong,{children:"is not"}),", ",(0,r.jsx)(t.strong,{children:"has no value"})," and ",(0,r.jsx)(t.strong,{children:"has any value"}),", and the value is matched as free text."]}),"\n",(0,r.jsxs)(t.p,{children:["A Short Text control can also be the ",(0,r.jsx)(t.em,{children:"target"})," of a rule, so it can be shown or hidden by a condition driven by another control."]}),"\n",(0,r.jsx)(t.h2,{id:"dynamic-values-and-parameters",children:"Dynamic Values and Parameters"}),"\n",(0,r.jsxs)(t.p,{children:["The answer given in a Short Text control can be reused elsewhere in the checklist as a ",(0,r.jsx)(t.a,{href:"/docs/templates/dynamic-values",children:"Dynamic Value"})," \u2014 for example inside a ",(0,r.jsx)(t.a,{href:"/docs/controls/text",children:"Text"})," control or a ",(0,r.jsx)(t.a,{href:"/docs/controls/mail-to",children:"Mail-To"})," email."]}),"\n",(0,r.jsxs)(t.p,{children:["The control can also ",(0,r.jsx)(t.em,{children:"receive"})," a dynamic value, through a ",(0,r.jsx)(t.strong,{children:"Dynamic Value Binding"})," set from the control's ",(0,r.jsx)(t.strong,{children:"Content Settings"})," cog. Short Text accepts all of the standard global dynamic values, as well as the value of another control in the same checklist. See ",(0,r.jsx)(t.a,{href:"/docs/templates/dynamic-values",children:"Dynamic Values"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["The control can also be bound to a ",(0,r.jsx)(t.a,{href:"/docs/templates/template-parameters",children:"Template Parameter"})," of type ",(0,r.jsx)(t.strong,{children:"String"}),", so it is pre-filled when the checklist is created."]}),"\n",(0,r.jsx)(t.h2,{id:"linked-checklists",children:"Linked Checklists"}),"\n",(0,r.jsxs)(t.p,{children:["A Short Text control can be either side of a ",(0,r.jsx)(t.a,{href:"/docs/controls/linked-checklist",children:"Linked Checklist"})," control mapping, so a value captured in a parent checklist can be carried into the child checklist it creates."]}),"\n",(0,r.jsx)(t.h2,{id:"reporting",children:"Reporting"}),"\n",(0,r.jsxs)(t.p,{children:["Short Text answers are available in ",(0,r.jsx)(t.a,{href:"/docs/reports/reports-overview",children:"Reports"})," and can be added as a column."]}),"\n",(0,r.jsxs)(t.p,{children:["Control columns are only available in a report when a single template is selected. Add the column from the ",(0,r.jsx)(t.strong,{children:"Columns"})," dropdown, under ",(0,r.jsx)(t.strong,{children:"Tasks & Fields"}),". See ",(0,r.jsx)(t.a,{href:"/docs/reports/columns",children:"Report Columns"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"limits",children:"Limits"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Limit"}),(0,r.jsx)(t.th,{children:"Value"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Format"}),(0,r.jsx)(t.td,{children:"Unrestricted, unless you add a RegEx validation pattern"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Maximum length"}),(0,r.jsx)(t.td,{children:"No limit. Despite the name, a Short Text answer is not length-capped."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"related-pages",children:"Related Pages"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.a,{href:"/docs/control
1s/long-text",children:"Long Text"})," \u2014 when the answer needs more than a single line."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.a,{href:"/docs/templates/conditional-logic",children:"Conditional Logic"})," \u2014 how to show or hide other tasks based on what is typed here."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.a,{href:"/docs/templates/dynamic-values",children:"Dynamic Values"})," \u2014 how to reuse the answer elsewhere, and how to pre-fill this control."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.a,{href:"/docs/controls/control-types",children:"Control Types"})," \u2014 the capability matrix for every control."]}),"\n"]})]})}function c(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},8453(e,t,n){n.d(t,{R:()=>i,x:()=>l});var s=n(6540);const r={},o=s.createContext(r);function i(e){const t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.