I like the idea of allowing the user to toggle a toggle switch without clicking and edit button first enter image description hereto reduce the number of "modes." But what to do when some fields will need to transform to become editable fields? I'd like to avoid putting an edit button on every row.

  • 1
    Just have the whole screen in edit mode by default. If the user navigates away from the screen and they've made changes then prompt them to confirm they're happy to save changes. If they've not made changes then no need to prompt them.
    – JonW
    Mar 31 '17 at 14:29

I believe in this case switches should not be operable except in the edit state.

This is because the [Edit] button in this case regards the full form below it. So from logical point of view, it turns the state of the form to editable, and switches are a part of this form.

Should edit buttons be at the level of each of the fields instead, it would be okay for the switches to be active.

However, you could split the form in two subsets:

  • Quick toggles - operable all the time,
  • Details (or whatever you call it) - with the [Edit] button.

A really quick mockup:


download bmml source – Wireframes created with Balsamiq Mockups


You can do the following: place a toggle and a text field next to the option in question.

  • if the toggle is set to "off", the text field remains inactive (disabled or hidden).
  • if the toggle is set to "on", the user has the possibility to enter the text.

Should you have this input parsed by F# guys, they can use FieldName option type which automatically indicates whether the toggle was set to off (None) or on and text was entered (Some input)

  • So for a field like "Retest" are you suggesting that he should have to toggle it on as well as type in "true", I don't see adding the extra step as helpful.
    – DasBeasto
    Jun 29 '17 at 18:59
  • As I read the question now I get the feeling that I've misunderstood it. I find @DominikOslizlo answer quite interesting. What I'm suggesting is (if applicable) when Retest is "false", it is "false". If it is "true", an edit box appears (gets enabled) where a reason for retest can be entered.
    – Mike
    Jul 5 '17 at 14:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.