青岛企业在产品询价表中收集型号与数量时,不应因为两者看起来都有数字,就使用相同的输入类型。编号关心的是准确识别对象,数量关心的是数值及业务范围。先把字段含义写清,才能决定是否需要数字增减,以及哪些字符必须保留原样。
先问这个值能否做加减
MDN指出number输入适合增减有意义的数值,而不适合仅碰巧由数字组成的标识。某型号00128不是数量128,型号增加1也未必代表下一种可售产品。字段若包含字母、横线或前导零,应按真实编号规则设计,不能默认转成数字。
| 字段 | 自拟值 | 语义与核对 |
|---|---|---|
| 示意型号 | 00128 | 标识,保持原始有效字符 |
| 另一示意型号 | A-128 | 仍是标识,不能按数值解析 |
| 数量 | 3 | 数值,但是否允许小数或范围需由业务定义 |
| 未选型号 | 空白 | 缺失,不自动解释成型号0 |
让类型与业务规则对应
<label for="model">示意产品编号</label>
<input id="model" name="model" type="text" value="00128">
<label for="quantity">示意数量</label>
<input id="quantity" name="quantity" type="number" min="1" step="1">不仅看输入框,还看整条数据链
1输入显示与输入保留有效字符。
2提交检查实际发送的值及类型。
3保存不将标识隐式转成数量。
4展示销售与导出仍能认出原对象。
- 拿带前导零、字母横线和普通编号分别做受控样本。
- 查看实际接收数据,不只看浏览器画面。
- 检查导出工具是否又把标识识别为数字。
- 数值字段另查计量单位、允许范围及缺失反馈。
加inputmode="numeric"就会变成数字字段吗?
不会。它是输入方式提示,不改变业务含义,也不代替验证。是否使用应按真实允许字符决定。
前端限制正确就能直接信任吗?
不能。后端仍需按照对象与数量各自规则确认,避免把标识和数值混用。