如何改变“;尺寸“;单击选择时的选择
How to change "size" of select when click on select?
很抱歉我英语不好,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>
我希望当我点击select时,select的大小在size="5"
中发生变化,因为当文档加载时,大小是size="1"
(这很好),但如果我点击select,它会显示所有十个选项,这就是问题所在。。。同时,如果我点击选择,尺寸会发生变化,是最漂亮的。
编辑将来,表单可能会有更多的250个选项,因此当文档加载大小为1时,以及当我单击大小为5…时,这一点非常重要。。。。仅当选择显示选项时,大小必须为"5",当选择选项时,尺寸必须为1。
问题是我不知道是怎么做到的,也许是用jquery?还是只使用css?
你能帮我吗?
谢谢!
以下是您的问题的有效解决方案:
- 将焦点事件处理程序添加到id为"selRegs"的选择列表中
- 将size属性设置为6(5将显示4个选项+"Select the Reg"选项)
- 选项更改后,大小将重置为1
- 从选择中移除焦点
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进行以下操作:
.change()
.focus()
.attr(param1,param2)
.blur()
.position()
试试这个:
<select size="1"
onfocus='this.size=5;'
onblur='this.size=1;'
onchange='this.size=1; this.blur();'
>
如果您想在javascript级别声明事件处理程序,请使用HTML select标记中的HTML onclick="myFunction()"事件标记,或者使用jQuery click()处理程序(我的意思是,如果您想从javascript添加附加事件)。我的意思是,您可以选择在HTML标记源代码中添加额外的事件调度代码,或者从javascript/jQuery级别添加它。
问题是onChange()
事件调度直到太晚才被调用以满足您的需要(它在用户选择值后被调用)。
您需要在单击下拉菜单的按钮时得到通知,以便更改所选值(默认值)。
在您的点击函数处理程序中,更改selectedIndex属性,并将其设置为包含"5"的行的索引
您应该在选择时使用点击事件
$('select').on('click',function(){
$(this).attr('size',5)
});
只需使用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>
演示:http://codepen.io/anon/pen/zxbRZb
- 检测页面上某个元素中选择(突出显示)或单击的内容
- AngularJs列表ng单击以选择选项转换
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- OpenLayers在悬停时高亮显示功能,并在单击时选择
- 单击时选择2(未选中),显示加载微调器javascript
- 单击OPTGROUP后选择所有子元素
- 如何改变“;尺寸“;单击选择时的选择
- 选择了多个用javascript单击的项目
- 单击选项卡时jquery选项卡选择不起作用
- casperjs-css选择器存在,但当单击它时会引发“”;CasperError:无法在不存在的选择器“”上调度mou
- 如何触发 HTML 选择单击事件(使用选项激活选择下拉列表)
- 从选项选择单击时打开 2 个 URL
- 如何从定义的函数中选择单击的链接
- 选择单击的图元,而不是其父图元
- 如何知道用户何时取消选择文本,如果在以前的活动选择单击
- 根据eq()选择单击事件
- 如何按类选择单击元素的子元素
- 共享IE7中的此问题-无法选择/单击弹出表单下方的任何内容
- 角度 JS,选择单击不调用
- JS循环并选择单击以外的其他输入