我在圖表中顯示了加入日的選擇。 它顯示20個可見的日子,並有21到31不可見,但你可以向下滾動到他們。 由於頁面佈局選擇上升而不是下降 - 看起來很奇怪。
考慮到這一點,我可以限制可視選擇選項的數量來說10嗎? 例如:顯示01到10,隱藏11到31個,但可供選擇。
可以這樣做嗎?
THX
我在圖表中顯示了加入日的選擇。 它顯示20個可見的日子,並有21到31不可見,但你可以向下滾動到他們。 由於頁面佈局選擇上升而不是下降 - 看起來很奇怪。
考慮到這一點,我可以限制可視選擇選項的數量來說10嗎? 例如:顯示01到10,隱藏11到31個,但可供選擇。
可以這樣做嗎?
THX
添加屬性size
到<select>
:
<select style=" width:100px;" size="2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
的行爲取決於瀏覽器,他不能被作者控制。您可以在元素中使用size = 10屬性,但它也會將菜單更改爲列表框,以便即使菜單未關注時也可以看到10個選項。爲了實現你描述的行爲,你需要使用JavaScript和CSS來構建你自己的控件。
從可用性的角度來看,當選擇一個月的某一天時,文本輸入框通常比菜單更受歡迎。鍵入一個或兩個數字比從30個左右的項目列表中選擇更方便。
你能指出我在使用javascript和css添加我自己的控件的方向?我寧願下降... – Adam 2011-12-16 05:43:09
其實有一點點黑客可以實現這種奇怪的缺乏可能性選擇顯示在SELECT TAG中的項目數量。
1 -
比方說,我們希望有一個SELECT顯示的10個項目的最大數量。 添加下面的JS事件到您選擇標記將實現這一目標:
onfocus='this.size=10;'
onblur='this.size=1;'
onchange='this.size=1; this.blur();'
這將喚醒你的SELECT給予它應有的效果把它轉化爲一個大小的選擇。
2 -
比方說,在某一點上有不足,我們要顯示最大10個項目。
假設你正在你的選擇的SQL查詢,你可以做類似如下: 一旦你知道你的查詢有多少行,你可以包括下一句話循環
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用一個'sizes'代替了一個普通的SELECT,它需要它取代內容所需的空間,而不像一個與它下面的內容重疊的普通SELECT。 爲了防止這種情況發生,如果SELECT將被放置比方說成TD TAG可以先放置在一個DIV與以下樣式:
position:absolute;
z-index:1;
這將讓大小SELECT重疊下面的內容就好像它是一個普通的SELECT一樣。
此問題已經討論過。 http://stackoverflow.com/questions/5538330/how-do-i-limit-the-number-of-options-displayed-in-an-html-select-element-dropdow – Pavan 2011-12-16 05:33:45