让字段可见但不可编辑
Gravity Perks Read Only 用于把 Gravity Forms 中适用的字段设置为只读状态。字段内容仍然显示给访客,但用户不能直接修改。它适合展示系统预填的数据、计算结果或需要用户确认但不允许改动的资料。
例如,网站从会员资料中带入姓名和邮箱,用户可以核对,但不能在当前申请表中更改。报价表单也可以显示系统计算出的数量或金额,避免用户手动修改结果。对于需要保留原始数据的流程,这类字段控制很有用。
适用场景
会员申请、服务订单、资料确认和内部审批表都可能使用只读字段。比如用户登录后填写服务申请,系统预填其账户编号和公司名称。管理员希望这些信息可见,但不允许用户在申请过程中随意改动。
只读字段也适合显示计算结果。若某个金额或数量由其他字段计算得出,用户应能看到结果,但不应直接覆盖。这样可以让表单内容更清楚,也能减少人为修改造成的数据不一致。
只读与禁用并不相同
HTML 中的 readonly 和 disabled 属性有不同的行为。只读字段通常仍会随表单提交,而禁用字段在常见表单行为中可能不会提交。扩展会针对不同字段类型处理这个差异,例如某些下拉字段并不原生支持 readonly。
这意味着不能只看前端是否无法点击,还要检查提交后后台是否收到正确的值。不同字段类型的实现方式可能不同。上线前应对文本、下拉、地址和其他复合字段分别测试。
安全边界
只读不等于安全保护。它主要限制正常页面交互,并不能代替服务器端权限验证。不能把只读字段中的用户 ID、价格或权限等级当作可信数据来源。关键业务数据应在服务器端重新核验,避免有人绕过前端修改请求内容。
如果字段包含敏感信息,还要考虑是否真的需要展示给用户。只读字段仍然可见,访客可能复制或截图。对于密码、内部备注和不应公开的资料,应直接隐藏或使用受控页面,而不是简单设置只读。
常见问题
字段仍可编辑时,检查该字段是否受支持,并确认只读选项已启用。若提交后字段值丢失,检查字段类型和页面提交行为。若需要管理员编辑 Entry 时仍可修改,可进一步查看官方提供的相关规则和扩展方式。
只读字段的权限边界
只读字段适合展示已经确定的信息,但不适合用来保护真正敏感的数据。页面上的字段值可能仍被浏览器读取,也可能通过其他方式被复制。若数据不应该被访客看到,就不要输出到页面。权限控制应放在服务器端和数据访问层。
对预填资料而言,最好告诉用户这些信息来自哪里。比如显示账户资料或之前提交的记录,并提供正确的修改入口。若资料有误却无法在当前表单更改,用户应知道如何更新,而不是被迫提交错误内容。
只读字段与计算字段组合时,需检查数值刷新和提交结果。若依赖前端脚本计算,用户禁用脚本或请求被篡改时,服务器端仍应重新计算关键金额和权限值。只读只是界面限制,不是业务安全机制。
对于由外部系统传入的预填值,应确认数据来源可信且格式正确。只读字段可以避免普通访客误改,但不能保证外部数据没有错误。若上游资料变化,应有同步或更新机制,避免表单一直显示旧资料,让用户在不知情的情况下确认错误信息。
如果字段值由前端脚本计算,不能把只读属性当作防篡改手段。服务器应在提交时重新计算关键值,并核对用户权限。对于价格和账户编号等关键字段,必须有可信的数据来源和校验机制。
相关资源与官方资料
同一生态中的扩展各自承担不同任务。可继续查看Gravity Perks系列扩展、GravityView表单记录展示插件,对照基础表单、记录展示和同系列功能的差异。选用前应先确认实际需求,不必为了功能相近而重复安装多个扩展。
官方产品资料:https://gravitywiz.com/。功能范围、兼容要求和产品状态可能调整,实际使用前应以开发商当前文档为准。



