Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Про плейсхолдеры. Нужны идеи


Автор: ksnk 19.9.2010, 17:13
У меня есть достаточно большая форма для редактирования списка объектов. Каждый объект занимает строчку таблицы и представляет собой несколько разных полей в этой форме. Поля разные для разных типов объектов.
Также есть некая форма в которой  для кажного типа объектов можно проставить "Значения по умолчанию" для каждого поля каждого объекта. Требуется при выводе основной формы для незаполненных полей показывать значения по умолчанию.

Для текстовых полей вроде как стандартное решение - placeholder - некий текст, который появляется поверх незаполненного поля. Для поля select - примерно то-же. Плейсхолдер выводится бледным тонким шрифтом, а заполненное поле - жирным, черным, так что все достаточно заметно. Если очистить текстовое поле или выбрать пустое значение в select'е - удет подставлено значени по умолчанию.

А вот для полей checkbox и radio как-то непонятно как это реализовать. Тоесть - как это расписать в html? Вероятно как-нибудь так
Код

<input type="radio" value="1">1<br><input type="radio" value="2" placeholder="placeholder">2<br>
<input type="radio" value="3">3<br><input type="radio" value="4">4<br>

это должно означать, что элемент с атрибутом placeholder будет отображен сереньким цветом...

А вот каким образом "убрать" значение, чтобы вернуть "значение по умолчанию"?
Кода не надо - сам напишу, но вот как очевидным для пользователя способом "очистить" radio, или checkbox пока не очень понимаю...

Автор: ksnk 19.9.2010, 17:47
придумался "очевидный" способ для чекбокса - просто ввести 3 состояния вместо 2-х. А вот для radio пока вопрос открыт.

Автор: magelan 19.9.2010, 19:16
радио надо рассматривать на группе, один контрол не имеет смысла.
те же 3 состояния, как для чекбокса - да, нет, может быть...
для радиогруппы будет актуален +1 контрол, который показывает состояние - в группе никто не выбран.

у мелкософта по этому поводу была куча наработок, и чекбоксы в селекте и поля ввода в селекте и мультивыбор с чекбоксами... была бы необходимость.

почему-то вспомнился светофор - тоже наверное 3 состояния.

Автор: ksnk 19.9.2010, 19:31
Цитата(magelan @  19.9.2010,  19:16 Найти цитируемый пост)
для радиогруппы будет актуален +1 контрол, который показывает состояние - в группе никто не выбран.

Видимо, это самое здравое решение. Так и стоит сделать. Только в дизайне уже все разрисовано именно на определенное количество радиобатонов ;) 
надо будет перерисовывать...

Цитата(magelan @  19.9.2010,  19:16 Найти цитируемый пост)
почему-то вспомнился светофор - тоже наверное 3 состояния.

У светофора немного больше состояний, чем 3. Есть еще мигающий зеленый, мигающий желтый и красно-желтый  smile 

Автор: 12345c 20.9.2010, 02:55
Дело в том, что 3-е состояние чекбокса (серое) уже занято, и отнюдь не значением по умолчанию. Оно чаще означает неактивное значение или"неполностью выбранную группу". Вешать на него семантически иное назначение - неправильно (по юзабельности). Это всё равно, что если Вы в программе (Си) напишете что-то вроде
#DEFINE TRUE FALSE

То же самое для плейсхолдера. Его чётко определённое на настоящий момент значение - подсказка, а не Default.

Для Default в HTML есть давно известная кнопка - <input type=reset>. А для начального состояния - разумеется, всё стоит в Default, без всяких хитростей.

Если есть задача дополнительно пометить Default-значения - надо делать третьим способом, одновременно подсказывая юзеру его. Например, радио и чекбоксы обводить цветом, а для поля ввода - например, подсказка в том же цвете с явным указанием: "По умолчанию: 334".

Автор: magelan 20.9.2010, 03:14
Цитата

(по юзабельности). 

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

Цитата

#DEFINE TRUE FALSE

#DEFINE FALSE !TRUE
не будем лукавить пойдем до конца... в большинстве случаев программист даже не заметит эту подмену, если он не приводит интеджер к булеану. 

Итак, о чем я? если человек с уровнем ksnk начинает морочится какой-то задачей, то значит у него есть цель, про кнопку ресет и скудность контролов веба он художнику уже все сказал, в красках.
Если художник решился переделать контролы и убедил верстальщика - это значит будет "новый веб" с новым взглядом на управление. 

Мы все привыкли к автомобильному рулю, но у танка и трактора рычаги, почему не руль? не юзабельно же...

Автор: ksnk 20.9.2010, 07:44
Моя задача - позволить юзеру заполнить некую таблицу значениями. Причем , если значения по умолчанию уже устраивают пользователя - поля таблицы можно не заполнять. Таким образом, сразу при взгляде на таблицу все значения и заполненные и дефолтные должны быть видны, чтобы юзер мог представить что будет с объектом. Желательно при этом сделать так, чтобы юзер видел, какое значение выставлено для этого поля, а какое взято по умолчанию. Юзабельность, в этом случае - обойтись минимальным количеством кликов мыши/редактированием полей.

В этой задаче использовать placeholder в качестве подсказки - излишне. Подсказка будет в виде выплывающих title-посказок. Юзер предполагается не простой, а прошедший предварительное объяснение. 

Цитата(12345c @  20.9.2010,  02:55 Найти цитируемый пост)
Для Default в HTML есть давно известная кнопка - <input type=reset>. А для начального состояния - разумеется, всё стоит в Default, без всяких хитростей
 Кнопка resert "семантически" сбрасывает все поля в форме, в крайнем случае - строке формы.  А мне нужно уметь сбрасывать по отдельности каждое поле. Не довешивать же кнопки к каждому полю по отдельности а потом объяснять юзеру о новой семантике ресета?  
 
Цитата(12345c @  20.9.2010,  02:55 Найти цитируемый пост)
 Например, радио и чекбоксы обводить цветом, 

сейчас так и есть. серые радиобатоны - имеют дефолтное значение. Черные - явно установленные.

Цитата(12345c @  20.9.2010,  02:55 Найти цитируемый пост)
 а для поля ввода - например, подсказка в том же цвете с явным указанием: "По умолчанию: 334".
 Есть еще такая проблема, что полей довольно много и размер их обычно невелик - пара-тройка цифр вмешается, как правило. Так что это еще один довод, почему нельзя в моем случае использовать плейсхолдер в качестве подсказки - она просто не умещается  полностью в поле.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)