我在我的表单中有一个列表框,封装在一个范围内,我想要隐藏但我也希望生成列表框,因为我有一个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>
答案 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()
你可以从隐藏的输入中访问数据并填充显示的元素