HTML选择限制可见选项的数量

我在图表中显示了加入日的选择.
显示20个可见日,并且21到31不可见,但您可以向下滚动到它们.
由于页面的布局,选择上升而不是下降 – 看起来很奇怪.

考虑到这一点,我可以将可见选择选项的数量限制为10吗?
例如:显示01到10并且隐藏了11到31但可供选择.

可以这样做吗?

谢谢

解决方法

实际上有一点hack可以实现选择SELECT TAG中显示的项目数量的奇怪缺乏可能性.

1 –

假设我们想要一个SELECT显示最多10个项目.
将以下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用’size’替换了一个普通的SELECT,它需要占用内容所需的空间,而不是像下面的内容重叠的常见SELECT.
为了防止这种情况发生,如果要放置SELECT,让我们说一下TD TAG,你可以先用下面的样式把它放在DIV中:

position:absolute;
z-index:1;

这将使大小的SELECT与其下方的内容重叠,就像它是一个常见的SELECT一样.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些