我之前遇到过这样一种现象:如果<input>
标记具有CSS属性display: none
,则其值不会以其父表单提交。我现在处于好奇的情况,这种行为很有帮助!
我可以依赖display: none
来阻止在提交表单时包含输入,还是技术上偏离规范?
编辑:到目前为止,答案都集中在其他方式,以及后端验证的必要性,所以让我明白一下;我知道这是一种有点奇怪的做事方式,我知道我需要在后端进行验证。我已经是;只是我回来的参数格式使得我处理的一个特定方面有点棘手。
尝试稍微更清楚地重新解释一下这个问题:是否有一种可靠的CSS内部方式来防止输入被包含在其表单中?看来设置一个字段&#39; s display
至none
正常工作,但我无法判断 是否应该工作。我并不关心可能编辑前端HTML / CSS的用户,因为我会在后端捕获它。您可以假设是非恶意用户。
答案 0 :(得分:3)
没有。您绝对应该使用disabled
属性。
使用HTML5时,某些浏览器(即Chrome)会阻止您在必填字段设置为display:none
时提交表单
答案 1 :(得分:0)
如果单选按钮代表两组复杂值,听起来就像是通过将该信息存储为单选按钮的值属性来实现的。
那就是说,既然你已经让用户选择了一个确定哪些隐藏输入适用的单选按钮,为什么你不能在验证代码中处理它?您可以先检查单选按钮的值,然后执行一个或另一个操作。
这会让某些人更难以绕过您的代码,因为表单不会因用户交互而改变,只会处理的项目会改变。有人无法启用一个禁用的隐藏表单元素,因为没有一个,那些不适用的元素只会被忽略。
答案 2 :(得分:0)
你不能依赖它,因为用户可以为该输入添加值,但如果只是为了继续进行某些信息,比如第二种形式等等,请确保始终在后端验证它!你可能想考虑使用php会话:)