Заполнять ли пользователям форму при создании темы?

Спасибо.

Как вы думаете, как это может работать?

Вот несколько моих идей, хотя в них ещё есть вопросы, на которые нужно найти ответы:

Базовые функции, которые уже есть: заполнители. Но сейчас это работает по принципу «всё или ничего»

Самая простая структура, которую я могу придумать для имитации поведения формы, — это когда «форма» появляется в редакторе (в том самом редакторе «d-editor», который открывается при нажатии на create topic).

В этом редакторе можно предусмотреть разные «секции», например:

Имя


Местоположение


Проблема


Каждое заголовок секции будет являться заполнителем, поэтому, когда пользователь нажмёт на него, заголовок (например, «Имя») исчезнет.

На данный момент настройка этого возможна с помощью компонента темы с заполнителем текста.

Однако этого недостаточно для поведения, похожего на форму, потому что существующие заполнители работают по принципу «всё или ничего», как я опишу ниже.


Поведение, похожее на форму, с заполнителями. Но как получить доступ к div-элементам в редакторе?

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

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

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

Это было бы возможно, если бы каждый заполнитель мог быть частью своего собственного div-элемента с уникальным идентификатором внутри текстового редактора. Затем, используя jQuery, можно было бы показывать и скрывать заполнитель в зависимости от того, нажал ли пользователь в эту область. Это требует добавления отдельных div-элементов внутри того, что сейчас является полем textarea, и я не уверен, как это сделать.

Вопрос для этого подхода: Как получить доступ к div-элементам внутри textarea редактора, чтобы можно было реагировать на клики пользователя по ним?


Альтернатива: использование существующей опции текста шаблона. Но как сделать текст неизменяемым?

Вероятно, альтернативой может быть то, что заголовки секций не будут «исчезать» при клике пользователя. То есть заголовки секций (например, Имя, Местоположение и Проблема) будут текстом, который останется на странице. Чтобы сделать это более похожим на форму по сравнению с текущим базовым шаблоном темы по умолчанию:

  1. Текст заголовка секции должен быть неизменяемым пользователем (то есть contenteditable="false").
  2. Разделительные знаки между секциями не должны удаляться пользователем.
  3. Под заголовком секции должно быть свободное место, где явно видно, что пользователь может вводить текст. В текущем шаблоне по умолчанию пользователю пришлось бы перейти к тексту, нажать return, чтобы создать место для ввода.

Вопрос для этого подхода: Как ввести текст шаблона, но (i) сделать этот текст неизменяемым пользователем и (ii) обеспечить явные места для ввода информации пользователем под каждым фрагментом текста?


Возможно, есть более хороший способ реализовать поведение, похожее на форму?

2 лайка