是否有条件显示的替代方案:无

时间:2008-09-26 20:30:07

标签: html css

我继承了一个应用程序,其中display:none用于根据其他输入元素的值控制输入元素的条件显示。

处理方法的方法是运行一些非常难看的代码来评估字段值,并在页面加载期间重置显示属性。每一次。

有没有更好的方法?

5 个答案:

答案 0 :(得分:6)

将display:none与JavaScript和CSS结合使用是简单显示或隐藏DOM元素的最简单方法。也就是说,您可以通过添加或删除元素来操纵DOM本身,而不是简单地显示/隐藏它们(例如,使用jQuery)。

答案 1 :(得分:0)

也许您应该重新设计使用所有 display:none 字段的表单,或者重写/重构执行此检查的脚本?如果表单太大,请将其分成几部分 - 这也将有助于用户。我个人不喜欢,只要我试图填写所有内容,表格就会经常更改。

答案 2 :(得分:0)

如果您没有在用户与表单交互时动态显示和隐藏元素,则无需使用CSS / Javascript。只需使用服务器端语言(PHP / JSP /等)就不输出隐藏字段。您将使用更少的带宽,即使禁用Javascript,表单也能正常工作。

答案 3 :(得分:0)

在提交之前,是否要在每个POST或重新排序字段上重新整形表单。如果第一个那么显示的字段应该在页面到达用户之前在服务器端被删除。如果您正在讨论在帖子之前更改客户端(例如,根据用户输入的某些字段中的输入删除不相关的字段),您可以使用javascript从DOM中删除字段。

您的解决方案需要的两件事是:

  1. 表格必须在没有javascript的情况下正常运行(即使他们感觉不那么光滑)
  2. 请勿提交用户无法看到的字段,除非它们是type =“hidden”的输入标记。如果您不知道某个用户是否将某个字段留空或无法看到它,那么您只会在后端混淆自己,因为它动态地通过客户端脚本更改了其样式。

答案 4 :(得分:0)

显示部分替代:无,即 在css中使用这种风格

opacity:0;

但问题是它没有出现在画布上,但它仍然存在。 使用display:none;完全删除元素并在应用属性显示时创建:block;