ありがとうございます。
どのように機能すると思いますか?
いくつかアイデアがありますが、まだ答えなければならない疑問も残っています:
現在ある基本機能:プレースホルダー。しかし現在は『すべてか無か』の状態です
フォームの動作を模倣するために思いつく最もシンプルな構造は、「フォーム」がエディタ(トピック作成ボタンを押した際に表示される「d-editor」)に現れるようにすることです。
そのエディタ内で、以下のような異なる「セクション」を提供できます:
名前
所在地
問題内容
各セクションタイトルはプレースホルダーとして機能し、ユーザーがクリックするとタイトル(例:名前)が消えます。
現時点では、この設定はプレースホルダーテキストテーマコンポーネントを使用して可能です。
ただし、これだけではフォームのような動作にはなりません。現在の実装では、プレースホルダーが「すべてか無か」のように動作するためです。以下に詳しく説明します。
プレースホルダーによるフォームのような動作。しかし、エディタ内の div にどうアクセスするか?
これをよりフォームに近いものにするには、各セクションが独立して動作する必要があります。
現在、プレースホルダーテキストテーマコンポーネントを使用すると、「すべてか無か」の状態になります。ユーザーがエディタをクリックすると、すべてのプレースホルダータイトルが消えてしまいます。
したがって、基本的なフォームの動作を実現するには、すべてのタイトルが表示または非表示になるのではなく、各プレースホルダータイトルセクションが独立して動作する必要があります。つまり、ユーザーが「名前」というプレースホルダーをクリックした際、そのプレースホルダーのみが消え、「所在地」や「問題内容」などの他のプレースホルダーは残るようにする必要があります。
これは、各プレースホルダーがテキストエディタ内の一意の ID を持つ独自の div の一部であれば可能になります。その後、jQuery を使用して、ユーザーがその領域をクリックしたかどうかに応じてプレースホルダーを表示または非表示にできます。これは、現在 textarea である部分に個別の div を追加することを意味しますが、その方法がわかりません。
このアプローチに関する質問:エディタの textarea 内の div にどのようにアクセスし、ユーザーがクリックした際にアクションを実行できるようにするか?
代替案:既存のテンプレートテキストオプションを使用する。しかし、テキストを編集不可にするには?
おそらく代替案として、セクションタイトルがユーザーがクリックしても「消えない」ようにする方法があります。つまり、セクションタイトル(例:名前、所在地、問題内容)はページ上に残るテキストになります。現在の基本的なトピックテンプレートのデフォルトと比較して、よりフォームに近いものにするには:
- セクションタイトルのテキストはユーザーが編集できないようにする(つまり、
contenteditable="false") - セクションの区切りポイントはユーザーが削除できないようにする
- セクションタイトルの下に、ユーザーが入力できることが明確なスペースを設ける。現在のデフォルトテンプレートでは、ユーザーはテキストの場所に移動し、
returnキーを押して入力スペースを作成する必要があります。
このアプローチに関する質問:テンプレートテキストを入力しつつ、(i) そのテキストをユーザーが編集できないようにし、(ii) 各テキストの下に入力可能な明確な場所を設けるには?
もしかすると、フォームのような動作を実現するより良い方法があるかもしれません。