Когда следует очищать формы? - PullRequest
2 голосов
/ 14 октября 2010

Под «очищенным» я подразумеваю форматирование входов, таких как «a1b2c3» в «A1B 2C3» или «5551234567» в «(555) 123-4567». Я думаю, у нас есть несколько вариантов:

  1. Когда пользователь печатает. Например, когда пользователь вводит почтовый индекс, все буквы пишутся с большой буквы, или после того, как пользователь вводит 3 цифры телефонного номера, он заключает в них квадратные скобки. .
  2. Когда поле теряет фокус.
  3. Никогда. Форматирование выполняется только на стороне сервера, непосредственно перед его вставкой в ​​БД. Пользователь никогда не увидит, как он был отформатирован, если он не отображается где-то на сайте.
    (3b) Если были ошибки формы или на странице подтверждения. Если есть ошибки формы и необходимо повторно отобразить форму, появится форматирование на допустимых входных данных или если у вас есть Страница подтверждения (правильны ли эти данные?), они будут там показаны.
  4. Никогда. Данные должны быть выгружены в базу данных как есть и только отформатированы в шаблоне / представлении непосредственно перед тем, как они отображаются обратно пользователю.

Что вы думаете? Я думаю, что мне нравится (2). Напоминает мне, как работает форматирование кода в Visual Studio (происходит, когда вы закрываете фигурную скобку или вводите точку с запятой).

Ответы [ 4 ]

2 голосов
/ 19 ноября 2010

Мне нравится либо фильтровать поле сразу после того, как оно теряет фокус (когда важно правильно отформатировать поле, прежде чем они перейдут к следующему полю - что редко), либо я фильтрую содержимое поля, как толькопользователь нажимает кнопку «SUBMIT» (или как вы хотите ее назвать), чтобы отправить данные на сервер.

Для меня это имеет несколько преимуществ:

  1. Ввод пользователя не прерывается раздражающими «автокоррекциями» - если автокоррекция иногда может казаться демонической одержимостью, если она не сделана хорошо.

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

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

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

1 голос
/ 14 октября 2010

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

1 голос
/ 14 октября 2010

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

0 голосов
/ 09 декабря 2010

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

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

Если у вас есть iPhone, вы заметите, что при вводе номера телефона он также автоматически форматируется с использованием скобок и пробелов при вводе. Но это часто приводит к путанице, так как частично напечатанный номер не всегда «сгруппирован» правильно.

Ответ: Все зависит от контекста.

...