Inputs and Forms
Editable cells are the inputs to your NExS app. This guide covers how to configure inputs, add validation, and build interactive forms.
Defining Editable Cells
Use the editable (or input/inputs) keyword in your view configuration:
| A | B | C | |
|---|---|---|---|
| 2 | view | Sheet1!A1:G18 | |
| 3 | editable | B3:B8, C12 |
This allows users to edit cells B3 through B8 and cell C12.
Single vs. Multiple Inputs
You can list inputs on one line or split them for clarity:
| A | B | C | D | |
|---|---|---|---|---|
| 3 | editable | B3:B8, C12, D5 | # All on one line |
Or split them into logical groups:
| A | B | C | D | |
|---|---|---|---|---|
| 3 | inputs | B3:B5 | # Personal info | |
| 4 | input | C12 | # Start date | |
| 5 | inputs | D5:D8 | # Preferences |
Both input and inputs work the same as editable.
Adding Comments
Document your configuration with comments (start with # or //):
| A | B | C | D | |
|---|---|---|---|---|
| 3 | inputs | B3:B5 | # Customer name fields | |
| 4 | input | C12 | // Effective date |
Input Types
By default, editable cells accept text input. Add attributes to create specialized input types.
Checkboxes
Checkboxes work well for yes/no questions, feature toggles, and boolean options. When checked, the cell receives the value 1; when unchecked, it receives 0. Your Excel formulas can then use these values in calculations or conditional logic.
| A | B | C | D | |
|---|---|---|---|---|
| 3 | inputs | B10:B12 | checkbox |
Radio Groups
When users need to pick exactly one option from a set, radio groups enforce mutual exclusivity. Clicking any option in the group sets that cell to 1 while automatically setting all others to 0. This is ideal for survey questions, plan selections, or any “choose one” scenario.
| A | B | C | D | |
|---|---|---|---|---|
| 3 | inputs | C5:C8 | radioGroup |
Email and Phone Validation
Adding email or phone as an attribute tells NExS to validate the input format before accepting it. Email validation ensures the value follows standard email format (like user@example.com), while phone validation checks for valid phone number patterns. Invalid entries are rejected, preventing malformed data from reaching your spreadsheet.
| A | B | C | D | |
|---|---|---|---|---|
| 3 | input | B5 | ||
| 4 | input | B6 | phone |
Required Fields
Marking inputs as required integrates with NExS’s form validation system. On its own, this attribute flags the field visually. Combined with the %REQUIRED button macro, you can disable submit buttons until all required fields contain values—preventing incomplete form submissions.
| A | B | C | D | |
|---|---|---|---|---|
| 3 | inputs | B3:B6 | required |
Combining Attributes
Apply multiple attributes by separating with commas:
| A | B | C | D | |
|---|---|---|---|---|
| 3 | input | B5 | required, email |
This creates a required email field.
Access Control on Inputs
When multiple people use the same app, you often need different people to edit different fields. NExS provides granular control over who can modify specific inputs.
By Access Key
In Access Code apps, different access keys can grant different editing permissions. An admin might be able to edit configuration fields while regular users can only fill in their own data sections.
| A | B | C | D | |
|---|---|---|---|---|
| 3 | inputs | B3:B5 | accessKeys: Admin | |
| 4 | inputs | C3:C5 | accessKeys: User1, User2 |
Read vs. Write Access
Team mode apps can separate viewing and editing permissions. Use readACL to control who sees the view and writeACL to control who can modify its inputs. This lets you create dashboards where many people view the data but only designated users can make changes.
| A | B | C | D | |
|---|---|---|---|---|
| 3 | inputs | B3:B5 | ||
| 4 | readACL | user1@example.com, user2@example.com | ||
| 5 | writeACL | admin@example.com |
Building Forms
Example: Contact Form
Excel layout (Sheet1):
| A | B | |
|---|---|---|
| 1 | Contact Us | |
| 2 | ||
| 3 | Name | |
| 4 | ||
| 5 | Phone | |
| 6 | Message | |
| 7 | ||
| 8 | [Submit] |
NExS.app configuration:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | app | Contact Form | ||
| 2 | submitList | sales@company.com | ||
| 3 | view | Sheet1!A1:B8 | ||
| 4 | editable | B3 | required | |
| 5 | editable | B4 | required, email | |
| 6 | editable | B5 | phone | |
| 7 | editable | B6 | required | |
| 8 | button | A8 |
Cell A8 content: Submit {disabled: %REQUIRED, sendData: 'B3:B6'}
This creates a form where:
- Name, Email, and Message are required
- Email must be a valid format
- Phone is optional but validated
- Submit button is disabled until all required fields are filled
- Clicking Submit emails the form data to sales@company.com
Example: Multi-Step Form
Use multiple views to create a wizard-style form:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | app | Application Form | ||
| 2 | noViewNav | true | ||
| 3 | view | Sheet1!A1:F15 | ||
| 4 | name | Step 1 | ||
| 5 | editable | B3:B8 | required | |
| 6 | button | A14 | ||
| 7 | view | Sheet1!A20:F35 | ||
| 8 | name | Step 2 | ||
| 9 | editable | B23:B28 | ||
| 10 | button | A33, A34 |
Navigation buttons:
- Step 1, cell A14:
Next {disabled: %REQUIRED, setView: 'Step 2'} - Step 2, cell A33:
Back {setView: 'Step 1'} - Step 2, cell A34:
Submit {sendData: 'A1:F35'}
Form Validation Tips
- Use required sparingly — Only mark truly essential fields
- Group related inputs — Logical sections improve user experience
- Provide clear labels — Users should know what each field expects
- Use format validation — Email and phone validation prevent errors
- Give feedback — Use conditional formatting to highlight errors
Next Steps
- UI Components — Add buttons, sliders, and status indicators
- Deployment Modes — Configure access control
- JavaScript API — Programmatic form control