![](/img/trans.png)
[英]HTML Select change event fires on scroll bar click in Chrome when select tag has a size attribute
[英]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?
你能幫助我嗎?
謝謝!
這是您問題的可行解決方案:
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:
使用HTML select標記中的HTML onclick =“ myFunction()”事件標記,或者如果您想在javascript級別聲明事件處理程序,則使用jQuery click()處理程序(我的意思是如果您想從javascript中添加其他事件) 。 我的意思是您可以選擇-在HTML標記源代碼中添加額外的事件分發代碼,或者從javascript / jQuery級別添加它。
問題在於,直到滿足您的需求時才調用onChange()
事件調度( 在用戶選擇一個值之后調用)。
單擊下拉菜單的按鈕時,您需要獲得通知,以便可以更改所選值(默認值)。
在點擊函數處理程序中,更改selectedIndex屬性並將其設置為包含“ 5”的行的索引
您應該在選擇時使用點擊事件
$('select').on('click',function(){
$(this).attr('size',5)
});
嘗試這個:
<select size="1"
onfocus='this.size=5;'
onblur='this.size=1;'
onchange='this.size=1; this.blur();'
>
只需使用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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.