Лучший способ обрабатывать заблокированные / отключенные поля в ваших формах? - PullRequest
0 голосов
/ 24 октября 2011

Мне нужно, чтобы пользователи могли редактировать только определенные поля в веб-форме, а не другие.Это может быть связано с привилегиями пользователя, например.

Я не уверен, как лучше всего справиться с этим.

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

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

  3. Не используйте поле формы вообще - просто выведите var в html.Возможно, включите скрытое поле формы или только поля обновления, которые не должны изменяться в модели

Я не уверен в наилучшем способе справиться с этим, как с точки зрения UX,и с точки зрения общего применения.

Ответы [ 4 ]

2 голосов
/ 24 октября 2011

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

0 голосов
/ 24 октября 2011

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

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

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

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

0 голосов
/ 24 октября 2011

Я всегда использовал отключенное / скрытое комбинированное решение, т.е.

<input type="text" name="name-disabled" disabled="disabled" value="<?php echo $name; ?>" />
<input type="text" name="name" value="<?php echo $name; ?>" />

Никогда не было проблем с UX, делающих это таким образом. Но во что бы то ни стало, если у кого-то есть лучшее решение, говорите.

0 голосов
/ 24 октября 2011

Я бы выбрал # 3 или вообще не отображал поля формы: если пользователь не может ничего с ними сделать, его не следует показывать. Я бы использовал отключенное поле, если есть способ включить его в текущем взаимодействии - отключенное поле, которое нельзя активировать каким-либо очевидным способом, сбивает с толку и заставит меня думать, что я делаю что-то не так, если смогу ». не редактируйте его.

...