Как визуально отклонить пользовательский ввод в таблицу?

StackOverflow https://stackoverflow.com/questions/2401375

  •  18-09-2019
  •  | 
  •  

Вопрос

При программировании прикладного модуля на основе таблиц (т.е.пользователь в основном вводит табличные данные в уже развернутую таблицу), как бы вы отклонили пользовательский ввод для данной ячейки?

Сценарий таков:пользователь редактирует ячейку, вводит что-то (текст, картинку, ...), и вы хотите, чтобы они заметили, когда закончат редактирование (например, нажмут enter), что их запись недопустима для вашего данного "формата" (в более широком смысле:может случиться так, что они ввели строку вместо числа, что их ввод слишком длинный, слишком короткий, они включают картинку, хотя это неприемлемо, ...).

Я вижу, как происходят две разные вещи:

  1. Вы можете довольно легко вписать их запись в свой формат, и вы это делаете, но вы хотите, чтобы они заметили это, чтобы они могли изменить, если ваша догадка недостаточно хороша (пример:они ввели "15.47" в поле, которое должно быть целым числом, поэтому ваша программа делает его "15")
  2. Вы не можете догадаться, что делать с их записью, и хотите сообщить им, что она недействительна.

Мой конкретный вопрос заключается в следующем:какой визуальный дисплей вы можете предложить, чтобы проинформировать пользователя о том, что его ввод неверен?Предпочтительнее ли отказаться выходить из режима редактирования или нет?

Две вещи, которые я могу себе представить, это:

  • использование цветов (красный фон, если недопустимо, желтый фон для моего случая 1 выше)
  • когда вы отклоняете ввод, сделайте что-то вроде того, что Apple делает для ввода паролей учетных записей пользователей:вы заставляете клетку "трястись" (т.е.колебание влево и вправо) в течение одной секунды и удерживайте фокус / редактирование в их, чтобы они не потеряли то, что они напечатали.

Давайте послушаем ваши предложения.

PS:Этот вопрос, по крайней мере в моем мыслительном процессе, каким-то образом является продолжением и специализацией моего предыдущего вопроса о заставить пользователей читать сообщения об ошибках.

ППС:Создал это сообщество wiki, было ли это правильным решением по такого рода вопросам или нет?

Это было полезно?

Решение

Будьте осторожны, используя автокоррекцию, например, принудительно приводя пользовательский ввод в соответствие с вашим форматом.Видишь:

Допустимо ли нормализовать содержимое текстового поля, когда оно теряет фокус?.

Как правило, лучше в первую очередь предотвратить недопустимые записи, чем автоматически заменять их позже.Например, если разрешены только целые числа, то вы игнорируете любой ввод десятичной точки (вместе со всеми буквами и большинством специальных символов).В некоторых средах вы можете захотеть подать тихий звуковой сигнал о том, что ввод игнорируется (например, глухой стук).

Что касается того, когда вам нужно предупредить пользователя об ошибке, как насчет выноски?Нарисуйте яркую линию от элемента управления или точки, о которой идет речь (поле, указатель статуса, кнопка, меню, место перетаскивания), до края окна и поместите краткое сообщение (два или три слова, например, "Нераспознанная дата") в виде воздушного шара.Размещение сообщения на полях должно препятствовать тому, чтобы оно закрывало что-либо интересное в переполненном столе.

Внезапного появления вызова должно быть достаточно, чтобы привлечь внимание пользователя, поэтому можно позволить пользователю перейти к другим ячейкам на случай, если он захочет исправить ошибку позже.Для повышения эффективности вы можете захотеть удерживать пользователя в поле, связанном с ошибкой, при первоначальном возникновении ошибки (поскольку часто пользователь хочет исправить ее сразу), но затем разрешить пользователю перейти на следующую вкладку или щелкнуть мышью, чтобы удалить пользователя.

При наведении курсора мыши или при наведении фокуса на элемент управления, связанный с ошибкой, строка подсвечивается (чтобы отличить ее от других строк выноски, которые могут присутствовать), и всплывающее окно расширяется до полного сообщения об ошибке, содержащего более подробную информацию об устранении проблемы (до двух предложений).Разрешите пользователю перетащить воздушный шар в новое место на случай, если это заслонит что-то интересное.

Включите кнопку Справки в развернутое окно для получения дополнительной информации.Вы также можете включить кнопку для исправления ошибки (например, Повторить попытку, переподключиться или установить значение по умолчанию).

Воздушный шар автоматически исчезает, когда ошибка исправлена.Отмена возвращает все, что вызвало ошибку (например, возвращает полю его исходное значение), что должно устранить ошибку.

Если пользователь прокручивает страницу в сторону от места, связанного с ошибкой, воздушный шар сжимается до значка, который остается в поле зрения, чтобы пользователь с меньшей вероятностью забыл об этом.Возможно, восклицательный знак в треугольнике - хороший значок.Поместите значок рядом с дорожкой полосы прокрутки или на ней, чтобы указать ее относительное расположение в таблице, чтобы пользователь мог быстро прокрутить страницу, чтобы найти ее позже.Наведение курсора мыши расширяет значок до полного текста сообщения.Возможно, щелкнув по значку, можно перейти к нужному месту в таблице и сфокусироваться на соответствующем элементе управления.

Воздушные шары также могут уменьшиться до размеров значков, если они начнут визуально мешать друг другу.Возможно, вы даже захотите включить элемент управления в воздушный шар, чтобы позволить пользователю принудительно использовать его в качестве значка.

Для обеспечения согласованности используйте для всех ошибок, а не только для тех, которые связаны с полями в таблицах.

Другие советы

В последний раз, когда я создавал такую форму (на веб-странице) Я поместил красную рамку вокруг вводимых данных, вызывающих нарушение.

Я подумал, что это было действительно здорово...пока пользователь не спросил меня: "Почему вокруг этой ячейки красная рамка?"

Что было бы неплохо, так это также отображать почему неверный ввод:"Это поле принимает только числа", скажем.

Вы могли бы отобразить значок в ячейке или всплывающую подсказку.Всплывающая подсказка может открываться автоматически или при наведении указателя мыши на значок.Он может автоматически исчезнуть, когда пользователь редактирует другую ячейку или по истечении некоторого тайм-аута.

Вы можете использовать всплывающие подсказки со стрелками, такие как всплывающие подсказки Adobe Flex об ошибках.В нем акцентируется внимание на ошибке и дается краткое описание.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top