实际上,有一个小技巧可以实现这种奇怪的缺乏选择 SELECT TAG 上显示的项目数量的可能性。
1 -
假设我们想要一个最多显示 10 个项目的 SELECT。
将以下 js 事件添加到您的 SELECT TAG 将实现此目标:
onfocus='this.size=10;'
onblur='this.size=1;'
onchange='this.size=1; this.blur();'
这会欺骗你的 SELECT 给它想要的效果,把它变成一个大小的 SELECT。
2 -
假设在某个时刻,我们想要显示的项目少于 10 个。
假设您从 SQL 查询中获取 SELECT,您可以执行以下操作:
一旦你知道你的查询有多少行,你就可以将下一个句子包含到循环中
if($nRow<10){
$nRowSelect=$nRow+1;
}
else{
$nRowSelect=10;
}
因此,如果每个循环中的行数少于 10 行,它就会分配要显示的所需行数。
onfocus='this.size=$nRowSelect;'
onblur='this.size=1;'
onchange='this.size=1; this.blur();'
3 -
替换元素的错误行为。
由于这个 hack 用一个“大小”的 SELECT 替换了一个普通的 SELECT,它占用了它需要置换内容的空间,而不像一个覆盖它下面的内容的普通 SELECT。
如果要放置 SELECT 以防止这种情况发生,比如说放入 TD TAG,您可以先将其放入具有以下样式的 DIV:
position:absolute;
z-index:1;
这将使大小的 SELECT 与其下方的内容重叠,就好像它是一个普通的 SELECT。