display:none是否禁用<input />?

时间:2015-02-25 22:24:42

标签: html css forms

我之前遇到过这样一种现象:如果<input>标记具有CSS属性display: none,则其值不会以其父表单提交。我现在处于好奇的情况,这种行为很有帮助!

我可以依赖display: none来阻止在提交表单时包含输入,还是技术上偏离规范?

编辑:到目前为止,答案都集中在其他方式,以及后端验证的必要性,所以让我明白一下;我知道这是一种有点奇怪的做事方式,我知道我需要在后端进行验证。我已经是;只是我回来的参数格式使得我处理的一个特定方面有点棘手。

尝试稍微更清楚地重新解释一下这个问题:是否有一种可靠的CSS内部方式来防止输入被包含在其表单中?看来设置一个字段&#39; s displaynone 正常工作,但我无法判断 是否应该工作。我并不关心可能编辑前端HTML / CSS的用户,因为我会在后端捕获它。您可以假设是非恶意用户。

3 个答案:

答案 0 :(得分:3)

没有。您绝对应该使用disabled属性。

使用HTML5时,某些浏览器(即Chrome)会阻止您在必填字段设置为display:none时提交表单

答案 1 :(得分:0)

如果单选按钮代表两组复杂值,听起来就像是通过将该信息存储为单选按钮的值属性来实现的。

那就是说,既然你已经让用户选择了一个确定哪些隐藏输入适用的单选按钮,为什么你不能在验证代码中处理它?您可以先检查单选按钮的值,然后执行一个或另一个操作。

这会让某些人更难以绕过您的代码,因为表单不会因用户交互而改变,只会处理的项目会改变。有人无法启用一个禁用的隐藏表单元素,因为没有一个,那些不适用的元素只会被忽略。

答案 2 :(得分:0)

你不能依赖它,因为用户可以为该输入添加值,但如果只是为了继续进行某些信息,比如第二种形式等等,请确保始终在后端验证它!你可能想考虑使用php会话:)