一、HTML多選下拉框代碼及基本屬性
HTML多選下拉框可以讓用戶在一個下拉列表中選擇多個選項,相對於單選下拉框而言,更加靈活和方便,因此在網頁開發中應用廣泛。以下為示例代碼:
<select multiple="multiple"> <option value="1">選項1</option> <option value="2">選項2</option> <option value="3">選項3</option> </select>
其中,multiple="multiple"
屬性表示該下拉框支持多選,選項之間用逗號分隔。每個選項使用<option>
標籤表示,value
屬性為選項的值,選中後提交表單會提交該值;顯示在頁面上的選項名稱應該在該標籤對中間添加。
要設置默認選中的選項,可以在<option>
標籤中添加selected
屬性。
二、HTML下拉框多選的實現方法
HTML本身是不支持多選下拉框的,所以需要藉助JavaScript的力量來實現。以下是一種簡單的實現方法:
<select id="testSelect" onchange="updateTextArea()"> <option value="1">選項1</option> <option value="2">選項2</option> <option value="3">選項3</option> </select> <br> <input type="hidden" id="testInput" name="testInput"> <textarea id="testArea" rows="3"></textarea> <script type="text/javascript"> function updateTextArea(){ var selectedValues = ""; var selectedTexts = ""; var selectObj = document.getElementById("testSelect"); for(var i = 0; i < selectObj.options.length; i++){ if(selectObj.options[i].selected){ selectedValues += selectObj.options[i].value + ","; selectedTexts += selectObj.options[i].text + ", "; } } // 去除最後的逗號 selectedValues = selectedValues.substring(0, selectedValues.length - 1); selectedTexts = selectedTexts.substring(0, selectedTexts.length - 2); document.getElementById("testInput").value = selectedValues; document.getElementById("testArea").value = selectedTexts; } </script>
實現原理:首先給標籤添加onchange事件,每當用戶選擇或取消選項時觸發該事件。在事件處理函數中,遍歷所有選項,將選中的選項的值和文本內容分別拼接成一個字符串,最後將這兩個字符串分別賦值給一個隱藏域和一個
三、HTML多選下拉框帶複選框的實現方法
為了提高可用性,有些多選下拉框會在每個選項前面添加一個複選框,用戶只需要勾選需要的選項即可。以下是一種實現方法:
<div id="selectDiv"> <input type="text" readonly class="input-text" style="width:250px;" placeholder="請選擇" onclick="showSelect()"> <ul id="selectUl" class="select"> <li><label><input type="checkbox" value="1">選項1</label></li> <li><label><input type="checkbox" value="2">選項2</label></li> <li><label><input type="checkbox" value="3">選項3</label></li> </ul> </div> <script type="text/javascript"> function showSelect(){ var divObj = document.getElementById("selectDiv"); var ulObj = document.getElementById("selectUl"); if(ulObj.style.display == "block"){ ulObj.style.display = "none"; } else { ulObj.style.width = divObj.offsetWidth - 2 + "px"; ulObj.style.display = "block"; } } </script>
實現原理:首先將標籤換成一個標籤,該標籤用於顯示用戶已選擇的選項名稱;在下拉框中添加一個
- 標籤,每個選項用
- 標籤表示,並且在每個選項前添加一個標籤。當用戶點擊標籤時,顯示下拉框,當用戶勾選/取消勾選一個選項時,通過JavaScript動態修改標籤顯示的內容。
四、layui多選下拉框的使用方法
layui是一款開源的前端UI框架,提供了一種簡單易用的多選下拉框組件。以下是使用示例:
<select xm-select="demo"> <option value="1">選項1</option> <option value="2">選項2</option> <option value="3">選項3</option> </select> <script type="text/javascript" src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> <script type="text/javascript"> layui.use(['form', 'layer', 'jquery'], function() { var form = layui.form; form.render('select'); }); </script>
實現原理:首先在標籤中添加
xm-select="demo"
屬性,它表示將該下拉框轉換成多選下拉框組件,demo
是這個組件的唯一標識。在頁面加載完成後,通過layui.use()方法依次加載form、layer和jquery三個模塊,並調用form.render()方法將標籤轉換成多選下拉框組件,從而實現多選下拉框的功能。五、HTML下拉框選擇怎麼設置
HTML下拉框選擇通常有兩種方式:一是使用鼠標點擊下拉框箭頭,彈出選項列表,再點擊選項名稱選中;二是使用鍵盤上下箭頭選擇選項,回車鍵確定選擇。以下是示例代碼:
<select name="testSelect"> <option value="1">選項1</option> <option value="2">選項2</option> <option value="3">選項3</option> </select>
其中,第一種方式是HTML自帶的功能,無需任何JavaScript代碼;第二種方式需要用到JavaScript,示例代碼如下:
<script type="text/javascript"> var selectIndex = 0; var selectObj = document.getElementsByName("testSelect")[0]; // 用戶按下了鍵盤上下箭頭 document.onkeydown = function(event){ var e = event || window.event; switch(e.keyCode){ // 上箭頭 case 38: selectIndex--; if(selectIndex < 0){ selectIndex = selectObj.options.length - 1; } selectObj.options[selectIndex].selected = true; break; // 下箭頭 case 40: selectIndex++; if(selectIndex > selectObj.options.length - 1){ selectIndex = 0; } selectObj.options[selectIndex].selected = true; break; // 回車鍵 case 13: alert("你選擇了:" + selectObj.options[selectIndex].text); break; } } </script>
實現原理:首先獲取標籤對象和選項的個數,然後監聽document對象的onkeydown事件,如果用戶按下了上下箭頭鍵或回車鍵則觸發該事件。按上箭頭時,將選項索引向上減1,如果減到0,則將索引指定為選項個數減1;按下箭頭時,將選項索引向下加1,如果超過選項個數,則將索引指定為0;按回車鍵時,彈出一個消息框,顯示選擇的選項名稱。
六、HTML下拉框默認值選取
HTML下拉框的默認選項可以通過在
<option>
標籤中添加selected
屬性來實現,如下所示:<select name="testSelect"> <option value="1">選項1</option> <option value="2" selected>選項2</option> <option value="3">選項3</option> </select>
以上代碼中,第二個選項
<option value="2" selected>選項2</option>
是默認選中的選項,因為它添加了selected
屬性。同樣地,如果要選擇多個默認選項,則可以在多個<option>
標記中添加selected
屬性。七、HTML多選下拉框的示例代碼
最後,將前面的多個示例代碼結合起來,得到一個完整的HTML多選下拉框示例代碼如下:
<select id="testSelect" multiple="multiple">
<option value="1">選項1</option>
<option value="2">選項2</option>
<option value="3">選項3</option>
</select><input type="hidden" id="testInput" name="testInput">
<textarea id="testArea" rows="3"></textarea><div id="selectDiv">
<input type="text" readonly class="input-text" style="width:250px;" placeholder="請選擇" onclick="showSelect()">
<ul id="selectUl" class="select">
<li><label><input type="checkbox" value="1">選項1</label></li>
<li><label><input type="checkbox" value="2">選項2</label></li>
<li><label><input type="checkbox" value="3">選項3</label></li>
</ul>
</div><script type="text/javascript">
var selectIndex = 0;
var selectObj = document.getElementById("testSelect");
function updateTextArea(){
var selectedValues = "";
var selectedTexts = "";
for(var i = 0; i < selectObj.options.length; i++){
if(selectObj.options[i].selected){
selectedValues += selectObj.options[i].value + ",";
selectedTexts += selectObj.options[i].text + ", ";
}
}
// 去除最後的逗號
selectedValues = selectedValues.substring(0, selectedValues.length - 1);
selectedTexts = selectedTexts.substring(0, selectedTexts.length - 2);
document.getElementById("testInput").value = selectedValues;
document.getElementById("testArea").value = selectedTexts;
}
function showSelect(){
var divObj = document.getElementById("selectDiv");
var ulObj = document.getElementById("selectUl");
if(ulObj.style.display == "block"){
ulObj.style.display = "none";
} else {
ulObj.style.width = divObj.offsetWidth - 2 + "px";
ulObj.style.display = "block";
}
}
document.onkeydown = function(event){
var e原創文章,作者:SNZO,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/134522.html