display:none - 其他选项

时间:2011-06-08 14:08:03

标签: html

我在我的表单中有一个列表框,封装在一个范围内,我想要隐藏但我也希望生成列表框,因为我有一个javascript代码,它读取该列表框中的选项并将值显示为字符串

当我使用

<span style="display:none">listbox code </span>

我注意到我的js代码读取列表框的内容不起作用。 我还在w3school display:none: the element will generate no box at all上阅读了以下内容。

有没有办法在生成列表框时隐藏跨度?

实际上我希望列表框充当隐藏字段,并考虑使用显示功能隐藏它

感谢您提供的任何建议。

已添加代码:

 <span style="display:hidden">
    <select size=5 id="submission_person_ids" name="submission[person_ids][]"  onfocus="displayPersons();"> </select>
  </span>

2 个答案:

答案 0 :(得分:2)

如果您不打算显示输入,则应使用&lt; input type =“hidden”&gt;相反并操纵它的价值。

使用display:none或隐藏容器隐藏的输入将被解析为DOM,但不会被提交,我认为这是您混淆的原因。

答案 1 :(得分:0)

您需要使用

visibility:hidden;

但这将留下输入的确切尺寸的空间,使得制作奇怪的空间。 为了克服这一点。您需要将元素设置为position:absolute到父级和z-index的样式,并设置跨浏览器兼容性的宽度和高度。

Display:none就像浏览器无法虚拟渲染它。当你调用display:block..etc时,它实际上会在浏览器中呈现并计算所有新样式。

但是像@Gerry说的那样

使用<input type="hidden">

如果你想在页面上隐藏一些变量 - 那么使用jquery和.show()你可以从隐藏的输入中访问数据并填充显示的元素