9

我的页面上有几个隐藏的表单字段,用于将数据传递到服务器端。出于调试目的,我觉得通过将所有符合条件的输入字段都设为隐藏类的一部分来隐藏所有符合条件的输入字段比在每个输入字段上设置 type=hidden 属性更容易。

每当我需要调试时,我都可以轻松地修改该类属性以进入调试模式。当然,这两种方法都可以隐藏输入字段,但我不确定为什么这种方法(通过类隐藏)在现实生活中没有广泛使用。您能否阐明应该首选的方法?

4

4 回答 4

16

<input type="hidden">不会触发输入验证、自动完成和其他与用户交互相关的事件。它旨在保存原始数据,无需用户直接输入。

但是<input type="text">,视觉上隐藏的,仍将被视为用户交互组件。并且在某些启用了视觉辅助的设备上,它不会被隐藏,并且无法提供您期望的一致性。这就是为什么不建议这样做的原因。

例如。a<input type="hidden">不会自动完成它,或者在刷新页面之前保留输入的数据,或者防止表单提交失败,甚至看不到类型验证。

于 2012-11-16T18:36:43.220 回答
9

CSS 方法不利于可用性和可访问性。想想一个禁用了 CSS 的人(非常旧的手机,有屏幕阅读器的人),他们不会像你期望的那样渲染你的 CSS,并且所有荣耀的输入都会显示给用户。

隐藏的输入应该用于隐含的用户输入,意思是来自用户的输入,但是是隐含的,不需要手动输入。

你的问题更多地落在type="hidden"方法上。

于 2012-11-16T18:26:47.750 回答
3

我建议使用<input type="hidden" />,因为它是 HTML 保存用户输入值的标准方式。如果你使用另一个属性 fortype并用 隐藏它css,可能会出现一个问题,当 css 加载失败时,input control会显示 。

于 2012-11-16T18:40:57.020 回答
1

我认为您的问题是关于调试表单字段的最佳方法。我建议在您的 HTML 中将它们保留为 type='hidden'。这对您、您的用户和页面的语义解释都是最好的。

相反,请使用Chrome 开发者工具之类的工具来进行调试。这将使您轻松查看隐藏字段的值。

于 2012-11-16T18:32:52.843 回答