select
:有疑问
<form name="reg" style="width:700px;" action="#" method="post">
<p align="center">
<select onChange="reg(this.options[this.selectedIndex].value)" size="1">
<option selected value="250">Select the Reg</option>
<option value="0">Reg 1</option>
<option value="1">Reg 2</option>
<option value="2">Reg 3</option>
<option value="3">Reg 4</option>
<option value="4">Reg 5</option>
<option value="5">Reg 6</option>
<option value="6">Reg 7</option>
<option value="7">Reg 8</option>
<option value="8">Reg 9</option>
<option value="9">Reg 10</option>
</select>
</p>
</form>
我希望当我点击选择时,size="5"
中选择更改的大小,因为当文档加载大小为size="1"
时(这很好)但是如果我点击选择,它显示了所有十个选项,这就是问题......
然而,如果我点击选择,尺寸变化,则是最美丽的。
修改 将来表单可能有250个选项,因此当文档加载大小 1 时,以及当我点击大小 5 时非常重要.... 仅当选择显示选项时,大小必须为“5”,并且当选择选项时,大小必须为1.
问题是我不知道是怎么做的,也许是用jquery?还是只用css?
你能帮助我吗?
谢谢!
答案 0 :(得分:3)
以下是您的问题的可行解决方案:
https://jsfiddle.net/juaxo8zm/8/
$(document).ready(function () {
var initPos = $("#yourDiv").position();
console.log("init: ");
console.log(initPos);
$('#selRegs').focus(function () {
$('#selRegs').attr("size", "6");
$("#yourDiv").css({
position: "absolute",
top: initPos.top,
left: initPos.left
});
});
$('#selRegs').change(function () {
console.log("selected");
$('#selRegs').attr("size", "1");
$("#selRegs").blur();
$("#yourDiv").css({
position: "static"
});
});
});
我使用jQuery:
答案 1 :(得分:0)
使用HTML onclick =&#34; myFunction()&#34;来自HTML select标记的事件标记,或者如果你想在javascript级别声明事件处理程序,则使用jQuery click()处理程序(我的意思是如果你想从javascript添加额外的事件)。 我的意思是你可以选择 - 在HTML标签源代码中添加额外的事件调度代码,或者从javascript / jQuery级别添加它。
问题是,onChange()
事件调度不会被调用,直到您的需要为时已晚(在用户选择值之后它被称为)。
您需要在点击下拉菜单按钮时收到通知,以便您可以更改所选值(默认值)。
在您的点击函数处理程序中,更改selectedIndex属性并将其设置为包含&#34; 5&#34;
的行的索引答案 2 :(得分:0)
您应该在选择
上使用点击事件$('select').on('click',function(){
$(this).attr('size',5)
});
答案 3 :(得分:0)
试试这个:
<select size="1"
onfocus='this.size=5;'
onblur='this.size=1;'
onchange='this.size=1; this.blur();'
>
答案 4 :(得分:-1)
只需使用javascript:
<select id='sel' onfocus='changesize();' onchange='changesize2();' size='1'>
<option selected value="250">Select the Reg</option>
<option value="0">Reg 1</option>
<option value="1">Reg 2</option>
<option value="2">Reg 3</option>
<option value="3">Reg 4</option>
<option value="4">Reg 5</option>
<option value="5">Reg 6</option>
<option value="6">Reg 7</option>
<option value="7">Reg 8</option>
<option value="8">Reg 9</option>
<option value="9">Reg 10</option>
</select>
<script>
function changesize(){
document.getElementById('sel').size = '5';
}
function changesize2(){
document.getElementById('sel').size = '1';
document.getElementById('sel').blur();
}
</script>