您好!欢迎访问家园网-www.jy.wang!

家园网

<input type=“hidden“...>和<input type=“text“...>

网络 作者:本站 点击:

<input type="hidden" name="order_id" value="<%=orderId%>"><%=orderId%>

<input type="text" name="order_id" value="<%=orderId%>">

主要区别如下:

1. 页面显示效果

  •       type="hidden":

字段完全隐藏,用户在页面上看不到输入框,仅在表单提交时后台能获取值。

示例效果:页面只显示订单号文本(<%=orderId%>),看不到输入框。

  •       type="text":

字段会显示为一个可见的文本输入框,输入框中默认值为 orderId,用户可以看到并修改这个值。

示例效果:页面会显示一个文本框,框内有订单号,用户可点击输入框修改内容。

2. 用户交互性

  •       type="hidden":

无交互性,用户无法看到或修改该字段的值,值完全由服务器端控制(通过 value="<%=orderId%>" 赋值)。

  •       type="text":

有交互性,用户可以:

         看到输入框中的订单号

         点击输入框修改内容(如误操作修改为其他数字)

         清空输入框内容

3. 数据安全性

  •       type="hidden":

虽然用户看不到,但可通过浏览器开发者工具(F12)找到并修改,并非绝对安全,但能防止普通用户误操作。

  •       type="text":

完全暴露给用户,修改门槛极低(直接在输入框中编辑),更容易导致数据被篡改。

→ 风险:若服务器未校验,可能接收被篡改的订单号,导致业务逻辑错误(如修改为他人的订单号)。

4. 适用场景

  •       type="hidden"(原写法):

适用于需要隐式传递数据的场景(如订单号、用户 ID 等关键标识),用户无需关注但服务器需要使用。

例:订单确认页传递订单号,用户只需看到订单号,无需修改。

  •       type="text":

适用于需要用户输入或确认文本信息的场景(如收件人姓名、联系电话等)。

若用于订单号,仅适合特殊场景(如客服协助用户手动输入订单号)。

代码对比示例

360截图20250804202403006.jpg

总结

将 hidden 改为 text 会让订单号字段从 “隐藏不可改” 变为 “可见可改”,这在大多数订单流程中是不合适的,因为订单号属于系统生成的唯一标识,不应允许用户修改。只有在明确需要用户输入或确认该标识的特殊场景下,才适合使用 type="text",且必须在服务器端加强校验(如验证订单号的合法性及归属权)。

————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/2503_91361793/article/details/149674294



标签: