2010-10-13 5 views
2

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

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

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

+0

Это действительно зависит от того, какие данные он представляет, что он представляет и для чего он будет использоваться, не так ли? –

+0

не нужно обсуждать эти вопросы. форматирование требуется только тогда, когда ваш клиент спрашивает об этом. Формирование также зависит от страны, основываясь на том, что вы формируете, zip, телефон, высота или вес :). Формат клиентской стороны необходим. В противном случае пользователь будет вводить что-нибудь и обработчик can not can can that правильно. добавьте еще один вариант там 5. сделайте форматирование, когда ваш босс (клиент) говорит, чтобы форматировать. :) – zod

+0

@zod: «иначе пользователь будет вводить что угодно» - это называется валидацией; это отдельный вопрос. (5) применяется только в том случае, если ваша единственная цель - собрать зарплату; некоторые из нас гордятся нашей работой. – mpen

ответ

2

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

Это имеет несколько преимуществ для меня: вход

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

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

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

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

+0

Мне тоже нравится. – mpen

+0

Меня тоже. Я стараюсь, чтобы мои формы были максимально легко заполнены, не наказывая пользователя. (:) -) – henkojinko

1

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

+0

Да ... это другая проблема с (1). Мне это не нравится, потому что сложно реализовать и с точки зрения пользователя, возможно, немного запутанно. Мне не нравится, когда сайты беспорядок с моим вводом, прежде чем я даже сделал его. – mpen

+0

Для того, что это стоит, переформатирование, когда поле теряет фокус, также может сбивать с толку. Пользователь может потратить время на форматирование строки вручную, не подозревая, что программное обеспечение готово для этого сделать для него. Я лично предпочитаю форматирование «на лету», если оно надежное и надежное. –

+0

Хороший момент, но он, вероятно, быстро научится после ввода одного входа. В любом случае, это сайт-член, мы ожидаем повторных клиентов. Они привыкнут к моим формам, нравится им это или нет;) – mpen

1

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

+0

Итак, вы голосуете (1) или (2). – mpen

+0

Я не думаю, что последовательность в этом отношении до тех пор, пока это происходит. (1) и (2) на разных элементах управления в одной и той же форме были бы точными. Я имею в виду, как вы собираетесь исправлять по мере ввода для ввода пользователем даты в формате DD-MMM-YYYY? –

+1

Но да, не забудьте снова форматировать вставку БД, обновить и т. Д., Вы не хотите, чтобы какая-то задница посылала необработанные HTTP-сообщения с мусорными данными, чтобы испортить вашу базу данных. –

0

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

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

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

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

Смежные вопросы