我有一个表单,其中两个表单的值通过javascript获取其值。这些文件的值应该最终存储在数据库中
文本字段的值不应适用于普通用户,因此我使用了这种代码:
<input type="text" name="total" id="total" disabled="disabled" value="0"> EUR
奇怪的是,数据库中的值现在是0
当我删除disabled="disabled
时,最终在数据库中的值是正确的。
这是如何实现的,是否可以阻止客户修改输入字段的内容,同时仍然在数据库中获取wright值?
答案 0 :(得分:3)
<input type="text" name="total" id="total" readonly="readonly" value="0"> EUR
改为使用readonly属性。
禁用确实听起来像它,它会禁用该字段,并且信息不会通过表单发送到服务器端脚本。因此,在读取该变量时,服务器端脚本将为null。
至于你的第二个问题,你不应该依赖这样的客户端验证(javascript)。这样做很好,但你也应该做服务器端。这背后的原因是因为您无法100%控制客户端计算机上发生的事情(用户可以在数据包级别进行修改并绕过您实施的任何客户端验证)。
答案 1 :(得分:1)
提交表单时不会传递已禁用的值。您想要使用的是readonly="readonly"
答案 2 :(得分:0)
当您在输入字段上设置'disabled'标志时,它会阻止该字段提交到Web服务器 - 就PHP而言,它不存在。请改用readonly="readonly"
。
答案 3 :(得分:0)
禁用标记会禁用文本框。因此,用户无法输入新值,其值现在为“o”。 如果你删除它,实际的vaule将取代它。