2011-06-08 73 views
1

我在我的表单中有一个列表框,封装在一个范围内,我想隐藏,但我也想要生成列表框,因为我有一个JavaScript代码,它读取列表框中的选项,以字符串形式显示值。display:none - 其他选项

当我使用

<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

你是什么意思与列表框?你可以显示该代码吗? – Gerry 2011-06-08 14:09:34

+0

为什么不使用隐藏字段呢?我不确定我明白。你想做什么,你能展示一些代码吗? – 2011-06-08 14:10:22

+0

在问题中添加的代码 – tanya 2011-06-08 14:11:37

回答

2

如果您不打算显示的输入,您应该使用<输入型=“隐藏” >而不是和操纵它的价值。

隐藏显示:none或隐藏容器内的输入将被解析到DOM中,但不会被提交,我认为这是您的混淆的根源。

+0

感谢您的建议.. – tanya 2011-06-08 15:14:24

0

您将需要使用

visibility:hidden; 

这会让输入的确切尺寸的空间,把做奇怪的空间。 为了克服这一点。您将需要将元素设置为position:absolute父级和z-index它,并设置跨浏览器兼容性的宽度和高度。

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

但像@Gerry说

使用<input type="hidden">,如果你想隐藏的页面级一些变量然后使用jQuery和.show()可以从隐藏的输入访问数据和填充显示元素