表单预填示例数据应清空,不让用户手动删 #3

Open
opened 2026-11-01 08:48:01 +00:00 by laoyang · 0 comments
Owner

问题

输入框里预填了「示例值」,用户点进去发现是要提交的真实数据,得先把里面的东西删干净才能填自己的。这没道理。

用户原话:

你那个输入框里面 pre-hold 那些文字,当鼠标点进去之后,那些东西都要清空。
现在不清空,里面都是一些垃圾数据,没有任何意义。用户点进去之后,
还得再重新删一遍,这不合理。应该把所有示例数据都清空就行了。

必须区分两类「预填」

不区分会误删真实配置:

类型 例子 处理
A. 真实配置值(从数据库读出来的) 站点名称、SMTP 服务器、桶名、AccessKey 保留,这是用户填过的
B. 出厂示例值(代码里写死的) 安装页用户名 admin、对象键前缀 fb、关闭邮件标题模板 清空

用户说的「垃圾数据」是 B 类。A 类动了就是数据丢失。

已发现需要清的

  1. install.php 管理员用户名预填 admin
  2. admin.php 对象键前缀预填 fb
  3. admin.php 关闭通知邮件标题预填 关于你反馈的问题《%s》

做法

  • B 类改成空 value,示例值移到 placeholder(灰色提示,点进去就消失,不占内容)
  • A 类保持不变
  • 逐个核对,不一刀切

验收

  • 安装页用户名框初始为空,placeholder 显示 admin 作提示
  • 后台对象键前缀、邮件标题初始为空,placeholder 给示例
  • 真实配置(站点名、SMTP、OSS)重新加载后仍回显原值,不能变空

为什么单独建单

与 #1(多软件归属)、#2(邮件通知)无关:这是表单交互细节,任何页面都可能踩,与前两张单的功能范围没有重叠

## 问题 输入框里预填了「示例值」,用户点进去发现是要提交的真实数据,得先把里面的东西删干净才能填自己的。这没道理。 用户原话: > 你那个输入框里面 pre-hold 那些文字,当鼠标点进去之后,那些东西都要清空。 > 现在不清空,里面都是一些垃圾数据,没有任何意义。用户点进去之后, > 还得再重新删一遍,这不合理。应该把所有示例数据都清空就行了。 ## 必须区分两类「预填」 不区分会误删真实配置: | 类型 | 例子 | 处理 | |---|---|---| | **A. 真实配置值**(从数据库读出来的) | 站点名称、SMTP 服务器、桶名、AccessKey | **保留**,这是用户填过的 | | **B. 出厂示例值**(代码里写死的) | 安装页用户名 `admin`、对象键前缀 `fb`、关闭邮件标题模板 | **清空** | 用户说的「垃圾数据」是 B 类。A 类动了就是数据丢失。 ## 已发现需要清的 1. `install.php` 管理员用户名预填 `admin` 2. `admin.php` 对象键前缀预填 `fb` 3. `admin.php` 关闭通知邮件标题预填 `关于你反馈的问题《%s》` ## 做法 - B 类改成空 value,示例值移到 `placeholder`(灰色提示,点进去就消失,不占内容) - A 类保持不变 - 逐个核对,不一刀切 ## 验收 - 安装页用户名框初始为空,placeholder 显示 `admin` 作提示 - 后台对象键前缀、邮件标题初始为空,placeholder 给示例 - 真实配置(站点名、SMTP、OSS)重新加载后仍回显原值,不能变空 --- ### 为什么单独建单 与 #1(多软件归属)、#2(邮件通知)无关:这是表单交互细节,任何页面都可能踩,与前两张单的功能范围没有重叠
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: laoyang/FeedLite#3