谢谢。
你认为它该如何实现呢?
以下是我的一些想法,不过其中仍有一些问题需要解决:
目前的基础功能:占位符。但现在是“全有或全无”的模式
我能想到的最接近表单行为的基本结构是,在编辑器(即点击“创建主题”时出现的“d-editor”)中显示该“表单”。
在该编辑器中,你可以提供不同的“部分”,例如:
姓名
地点
问题
每个部分的标题将作为一个占位符,因此当用户点击它时,标题(例如“姓名”)就会消失。
到目前为止,通过 占位符文本主题组件 已经可以实现这种设置。
但是,这还不足以实现类似表单的行为,因为目前存在的占位符是“全有或全无”的,正如我接下来要描述的那样。
类似表单的占位符行为。但如何访问编辑器中的 div?
为了使其更像表单,每个部分必须能够独立运作。
目前,使用占位符文本主题组件时,它是“全有或全无”的——如果用户点击编辑器,所有占位符标题都会消失。
因此,要实现基本的表单行为,我们不能让所有标题同时出现或消失,而是需要让每个占位符标题部分独立运作。这样,当用户点击“姓名”占位符时,只有该占位符会消失,而其他占位符(“地点”和“问题”)则保留。
如果每个占位符都能成为文本编辑器内具有唯一 ID 的独立 div 的一部分,那么上述功能就可以实现。然后,借助 jQuery,你可以根据用户是否点击了相应区域来显示或隐藏占位符。这需要在当前为 textarea 的内容中添加独立的 div,但我不确定如何实现这一点。
此方案的疑问:如何访问编辑器 textarea 内的 div,以便在用户点击它们时执行相应操作?
替代方案:使用现有的模板文本选项。但如何使文本不可编辑?
另一种可能的方案是,当用户点击时,部分标题不会“消失”。也就是说,部分标题(例如:姓名、地点和问题)将作为保留在页面上的文本。与当前基本主题模板的默认设置相比,为了使其更像表单:
- 部分标题文本不能被用户编辑(即设置
contenteditable="false") - 部分分隔符不能被用户删除
- 在部分标题下方应有明显的空间供用户输入。在当前默认模板中,用户必须将光标移至文本处,按
回车键才能创建输入空间。
此方案的疑问:如何输入模板文本,同时满足以下两点:(i) 该文本对用户不可编辑,(ii) 在每个文本块下方为用户留出清晰的输入区域?
也许还有更好的方法来实现类似表单的行为?