Prototyping Forms and Inputs

With Justinmind, you can create interactive forms in your prototypes to simulate user input experiences, such as registration, login, and search forms.
Interactive wireframes move between inputs

Creating a form

To create a form in Justinmind, you’ll need to use widgets. Look to the ‘Forms and Inputs’ section of the Basic widget library in your Widgets palette. Here, you’ll find widgets commonly used in forms, including: Input Text Fields, Checkboxes and Radio Buttons, Select Lists, and more.

You can also download our pre-made forms and import them into your Widgets palette.

Just drag a widget onto the Canvas to start creating your form.
Form widgets

All form and input widgets are automatically interactive during simulation – no Events needed. Just click “Simulate” and you’ll be able to interact with them.
Interactivity for inputs during simulation
Depending on which device you’re using in your prototype, the appearance and functionality of these widgets will differ. For example, in iPhone device prototypes, focusing in on an Input Text Field during simulation will automatically show an interactive device keyboard.
iPhone input field keyboard

You can add additional widgets with an input style into your prototype by adding other widget libraries.
Add/Manage widget libraries

Once you’ve designed your form, you can start to add Events to create sophisticated interactions. We’ve created a few example exercises to give you an idea of a few ways to do so. Check them out below.

Exercise 1: Autopopulate forms

In this exercise, you’ll learn how to autofill two Input Text Fields after hitting the tab key in the first Input Text Field.
Autopopulate text
Follow these steps to complete the exercise:

  1. Create a new prototype and create a form using Text widgets and Input Text Fields.
  2. Select the first Input Text Field of the form, and look to the Events palette.
  3. Click “Add Event” and select the “On Key Up” trigger. In the ‘Any Key’ field that appears, hit the desired keyboard key trigger. In our example, we’re using the TAB key.
  4. Select a “Set Value” action. For the target of the action, select the second Input Text Field. For the value set by the action, type in a value. In our example, we type “Car engine”. Click “OK” to finish building the event.Set value to Input Field
  5. Look back to the Events palette, click on the gear icon next to the word ‘Do’ and select ‘Add action’. Create another “On Key Up” + “Set Value” action and select the third Input Text Field as the target, and enter something as the value set by the action.Interactive wireframes: autopopulate text - Add action
  6. Looking again to the Events palette, click “Add Event”. Leave the trigger as “On Key Up” and change the resulting action to “Set Focus On” and select the second Input Text Field as the target to be focused on.Interactive wireframes: autopopulate text fields

    Here’s how all your events should look:
    Interactive wireframes: autopopulate text - Events

That’s it! Click “Simulate” and enter some text in the first Input Text Field. Then, hit the TAB key and you’ll focus on the second Input Text Field and see the values autofilled.

You can download the example here.

Exercise 2: Screen flow validation

With Justinmind, you can create and simulate a multi-step form using variables and screen flow validation. In this example, you’ll learn how to create a mobile input form with multiple screens. In the last screen, the user will see a summary of all the details they have filled in.
Exercise 2 example
To design a multi-step form in your prototype, follow the steps below:

Designing the screens

  1. Create a new prototype with three screens.
  2. On the first screen, drag a Button widget to the Canvas and customize the screen as you’d like.Add three screens on your prototype
  3. Go to Screen 2 and drag a Dynamic Panel to the canvas. Click the ‘+’ icon on the panel to add two additional subpanels, so there are three in total.Add 3 dynamic panels
  4. Drag two Input Text Fields and a Button widget into the first panel.Add Inputs and a Button
  5. Copy one Input Text Field and the Button widget from Panel 1 into Panel 2 and Panel 3. Change the instructions and questions as desired. Add Input field and button
  6. Go to Screen 3 and add a Text widget for each Input Text Field question in the form.
  7. Go to the Variables palette and add a variable for each question asked in the form, leaving their default values blank.Add variable for validation

Adding the Events

  1. Go to Screen 1 and create an “On Tap” + “Link To” event, and link to Screen 2.Add link to screen 2
    Note: In mobile prototypes, “On Click” changes to “On Tap” but they serve the same function
  2. Go to Panel 1 in Screen 2, select the Button in Panel 1, and create an “On Tap” + “Set Active Panel” event, selecting Panel 2 as the Panel to be set as active.Set panel 2 as active
  3. Go to Panel 2, select the Button in Panel 2, and create an “On Tap” + “Set Active Panel” event, selecting Panel 3 from the Outline palette as the Panel to be set as active.Set panel 3 as active
  4. Go to Panel 3, select the Button, and create an “On Tap” + “Link To” event, and link to Screen 3.Link to screen 3
  5. Next, we’ll create events to transfer the details the user enters in the Input Text Fields in the form on Screen 2 to the confirmation screen (Screen 3).
    Variable flow in exercise 2

  6. Navigate to Screen 2 and to Panel 1 and select the first Input Text Field. Drag the Input Text Field to the corresponding variable in the Variables palette. This will create an “On Page Unload” + “Set Value” event, which will set the value of the variable to the details entered in the Input Text Field during simulation.Link the Input to the Variable
  7. Repeat Step 5, dragging the second Input Text Field to its variable in the Variables palette.
  8. Navigate to Panel 2 and drag the Input Text Field to its corresponding variable.Set Email variable value
  9. Repeat Step 7 for Panel 3, dragging its Input Text field to its variable.
  10. Go to Screen 3 and look to the Variables palette. Select a variable and drag it to the corresponding text element on the Screen. This will create an “On Page Load” + “Set Value” event, and will set the value of the Text element to the variable’s value.Set Text Value From Variable
  11. Repeat Step 9 until each Text element has been assigned its corresponding variable.

And that’s it! Click “Simulate” and interact with your prototype. You’ll see that your answers appear in the summary on the last page.

You can download our example here.

Exercise 3: Validating required fields in your forms

In this example, we’ll learn how to use conditions to validate an input form so all required fields are filled accurately.
Validate required fields example
Follow these steps to learn how:

Designing the form

  1. Create a prototype and drag a Dynamic Panel onto the Canvas.
  2. Click the ‘+’ icon on the Dynamic Panel, so there are now two sub panels.Add 2 panels
  3. Click back to Panel 1 and drag six Input Text Field widgets into Panel 1, and in the Properties palette, give each respectively a placeholder value of First name, Surname, Address, Postal Code*, Email*, and Phone number*.
    Add placeholder to input fields

    The Input fields that contain the ‘*’ character will require the user to input text in them in order to complete the form. Additionally, note that the email field will require a “xxx@xxx” format.
  4. Drag a Button widget to the bottom of Panel 1.
  5. Go to Panel 2 and create a “Success” message to inform the user that they have successfully entered their details.Dynamic panel with required forms

Adding the Events

We’ve created a static input form. Now, we’ll add events using conditions to make our form interactive and identify which fields must be filled in to successfully create an account.

  1. Select the Button in Panel 1 and go to the Events palette. Add an “On Click” + “Change Style” action, selecting the “Postal Code*” Input Text Field. Select the border and text color options from the dropdown, and set them to the current color of the Input Text Field. Then, click “OK” to exit the dialog. This will change the appearance of the Input Text Field to be its default color when the user has entered the correct information. Change style for input field
  2. Look back to the Events palette and click the “add condition” text above the event you just created. In the Conditional Expression builder, follow these steps to create the condition:
    interactive-prototypes-input-form-expression-1
    1. Drag the Regular Expression text function to the first space in the expression.
    2. In the space that appears, drag the postal code Input Text Field from the dialog Canvas or from the dialog outline.
    3. In the second space, drag the Postal Code constant. Click “OK” to finish building the condition.
  3. Look to the Events you just created, and click “Else” text. Add another “On Click” + “Change Style” action, again selecting the “Postal Code*” Input Text Field and select the Border color and Text color options from the dropdown. This time, change the style of the border and the text to red. The red style will indicate to users that the Postal Code Input Text Field has not been filled correctly.Change the input field color to red
  4. Repeat Steps 1-3 for the other required input fields (Email and Phone number). Remember to change the components in the Expression builder and the Input Text Fields accordingly.
  5. Once you have events for all 3 required fields, add one more event to the Button. Create an “On Click” + “Set Active Panel” event, selecting Panel 2 from the Outline palette to be set as active.Set active panel 2
  6. Click on the “add condition” text for this event. Add the following expression:Condition for event exercise 3
    Note: the condition must exactly match this image in order for the event to trigger correctly
  7. This is how your events should look so far:
    Events in Exercise 3
    The last thing we’ll do is create a set of events that allow the user to go back and complete the form again, with the fields reset.

  8. Select the “Go Back” button in Panel 2 and create an “On Click” + “Set Value” event. Select each of the Input Text Fields, and set their values to blank.Set Input values to blank
  9. Add an “On Click” + “Set Active Panel” event, selecting Panel 1 from the Outline palette as the Panel to be set as active.Set active panel 1

And that’s it! Click “Simulate” to interact with and enjoy your input form in your prototype.

You can download our example here.