发帖时是否需要用户填写表单?

谢谢。

你认为它该如何实现呢?

以下是我的一些想法,不过其中仍有一些问题需要解决:

目前的基础功能:占位符。但现在是“全有或全无”的模式

我能想到的最接近表单行为的基本结构是,在编辑器(即点击“创建主题”时出现的“d-editor”)中显示该“表单”。

在该编辑器中,你可以提供不同的“部分”,例如:

姓名


地点


问题


每个部分的标题将作为一个占位符,因此当用户点击它时,标题(例如“姓名”)就会消失。

到目前为止,通过 占位符文本主题组件 已经可以实现这种设置。

但是,这还不足以实现类似表单的行为,因为目前存在的占位符是“全有或全无”的,正如我接下来要描述的那样。


类似表单的占位符行为。但如何访问编辑器中的 div?

为了使其更像表单,每个部分必须能够独立运作。

目前,使用占位符文本主题组件时,它是“全有或全无”的——如果用户点击编辑器,所有占位符标题都会消失。

因此,要实现基本的表单行为,我们不能让所有标题同时出现或消失,而是需要让每个占位符标题部分独立运作。这样,当用户点击“姓名”占位符时,只有该占位符会消失,而其他占位符(“地点”和“问题”)则保留。

如果每个占位符都能成为文本编辑器内具有唯一 ID 的独立 div 的一部分,那么上述功能就可以实现。然后,借助 jQuery,你可以根据用户是否点击了相应区域来显示或隐藏占位符。这需要在当前为 textarea 的内容中添加独立的 div,但我不确定如何实现这一点。

此方案的疑问:如何访问编辑器 textarea 内的 div,以便在用户点击它们时执行相应操作?


替代方案:使用现有的模板文本选项。但如何使文本不可编辑?

另一种可能的方案是,当用户点击时,部分标题不会“消失”。也就是说,部分标题(例如:姓名、地点和问题)将作为保留在页面上的文本。与当前基本主题模板的默认设置相比,为了使其更像表单:

  1. 部分标题文本不能被用户编辑(即设置 contenteditable="false"
  2. 部分分隔符不能被用户删除
  3. 在部分标题下方应有明显的空间供用户输入。在当前默认模板中,用户必须将光标移至文本处,按 回车 键才能创建输入空间。

此方案的疑问:如何输入模板文本,同时满足以下两点:(i) 该文本对用户不可编辑,(ii) 在每个文本块下方为用户留出清晰的输入区域?


也许还有更好的方法来实现类似表单的行为?

2 个赞