JS控制下拉列表左右選擇實(shí)例代碼
使用JS控制下拉列表左右選擇
需求分析
在我們的分類管理中,我們要能夠去修改我們的分類信息,當(dāng)我們一點(diǎn)修改的時候,跳轉(zhuǎn)到一個可以編輯的頁面,這里面能夠修改分類的名稱,分類的描述,以及分類的商品
技術(shù)分析
ondblclick="selectOne()":雙擊事件
select標(biāo)簽的屬性multiple="multiple":
代碼實(shí)現(xiàn)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--
步驟分析
1. 確定事件: 點(diǎn)擊事件 :onclick事件
2. 事件要觸發(fā)函數(shù) selectOne
3. selectOne要做一些操作
(將左邊選中的元素移動到右邊的select中)
1. 獲取左邊Select中被選中的元素
2. 將選中的元素添加到右邊的Select中就可以
-->
<script>
function selectOne(){
//1. 獲取左邊Select中被選中的元素
var leftSelect = document.getElementById("leftSelect");
var options = leftSelect.options;
//找到右側(cè)的Select
var rightSelect = document.getElementById("rightSelect");
//遍歷找出被選中的option
for(var i=0; i < options.length; i++){
var option1 = options[i];
if(option1.selected){
//2. 將選中的元素添加到右邊的Select中就可以
rightSelect.appendChild(option1);
}
}
}
//將左邊所有的商品移動到右邊
function selectAll(){
//1. 獲取左邊Select中被選中的元素
var leftSelect = document.getElementById("leftSelect");
var options = leftSelect.options;
//找到右側(cè)的Select
var rightSelect = document.getElementById("rightSelect");
//遍歷找出被選中的option
for(var i=options.length - 1; i >=0; i--){
var option1 = options[i];
rightSelect.appendChild(option1);
}
}
</script>
</head>
<body>
<table border="1px" width="400px">
<tr>
<td>分類名稱</td>
<td><input type="text" value="手機(jī)數(shù)碼"/></td>
</tr>
<tr>
<td>分類描述</td>
<td><input type="text" value="這里面都是手機(jī)數(shù)碼"/></td>
</tr>
<tr>
<td>分類商品</td>
<td>
<!--左邊-->
<div style="float: left;">
已有商品<br />
<select multiple="multiple" id="leftSelect" ondblclick="selectOne()">
<option>華為</option>
<option>小米</option>
<option>錘子</option>
<option>oppo</option>
</select>
<br />
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="selectOne()"> >> </a> <br />
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="selectAll()"> >>> </a>
</div>
<!--右邊-->
<div style="float: right;">
未有商品<br />
<select multiple="multiple" id="rightSelect">
<option>蘋果6</option>
<option>腎7</option>
<option>諾基亞</option>
<option>波導(dǎo)</option>
</select>
<br />
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > << </a> <br />
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <<< </a>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提交"/>
</td>
</tr>
</table>
</body>
</html>
實(shí)例補(bǔ)充:
<!DOCTYPE html>
<html>
<head>
<title>JavaScript下拉列表左右選擇</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" >
function chooseToRight()
{
var op=document.getElementById("s1").getElementsByTagName("option");
var select2=document.getElementById("s2");
var k=op.length;
for(var i=0;i<k;i++)
{
if(op[i].selected==true)
{
select2.appendChild(op[i]);
k--;i--; //這里要特別注意?。。∫驗閍ppendChild相當(dāng)于剪切,所以每次循環(huán)之后要執(zhí)行k--,i--
}
}
}
function chooseToLeft()
{
var op=document.getElementById("s2").getElementsByTagName("option");
var select2=document.getElementById("s1");
var k=op.length;
for(var i=0;i<k;i++)
{
if(op[i].selected==true)
{
select2.appendChild(op[i]);
k--;i--;
}
}
}
function allToLeft()
{
var op=document.getElementById("s2").getElementsByTagName("option");
var select2=document.getElementById("s1");
var k=op.length;
for(var i=0;i<k;i++)
{
select2.appendChild(op[i]);
k--;i--;
}
}
function allToRight()
{
var op=document.getElementById("s1").getElementsByTagName("option");
var select2=document.getElementById("s2");
var k=op.length;
for(var i=0;i<k;i++)
{
select2.appendChild(op[i]);
k--;i--;
}
}
</script>
</head>
<body>
<div style="float: left">
<select id="s1" multiple="multiple" style="width: 120px;height: 150px">
<option>AAAAAAA</option>
<option>BBBBBBB</option>
<option>CCCCCCC</option>
<option>DDDDDDD</option>
<option>EEEEEEE</option>
</select><br><br>
<input type="button" value="選中添加到右邊" onclick="chooseToRight();"/><br><br>
<input type="button" value="全部添加到右邊" onclick="allToRight();"/><br>
</div>
<div style="float: left">
<select id="s2" multiple="multiple" style="width: 120px;height: 150px">
<option>1111111</option>
<option>2222222</option>
<option>3333333</option>
<option>4444444</option>
<option>5555555</option>
</select><br><br>
<input type="button" value="選中添加到左邊" onclick="chooseToLeft();"/><br><br>
<input type="button" value="全部添加到左邊" onclick="allToLeft();"/><br>
</div>
</body>
</html>
到此這篇關(guān)于JS控制下拉列表左右選擇實(shí)例代碼的文章就介紹到這了,更多相關(guān)如何使用JS控制下拉列表左右選擇內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 純js代碼生成可搜索選擇下拉列表的實(shí)例
- jQuery實(shí)現(xiàn)在下拉列表選擇時獲取json數(shù)據(jù)的方法
- js使下拉列表框可編輯不止是選擇
- javascript實(shí)現(xiàn)通過拼音首字母快速選擇下拉列表
- js實(shí)現(xiàn)下拉列表選中某個值的方法(3種方法)
- jquery用ajax方式從后臺獲取json數(shù)據(jù)后如何將內(nèi)容填充到下拉列表
- jquery+json 通用三級聯(lián)動下拉列表
- javaScript年份下拉列表框內(nèi)容為當(dāng)前年份及前后50年
- js獲取下拉列表框<option>中的value和text的值示例代碼
- JavaScript實(shí)現(xiàn)下拉列表選擇框
相關(guān)文章
JavaScript使用lodash實(shí)現(xiàn)命名轉(zhuǎn)換和函數(shù)封裝
Lodash?是一個?JavaScript?的工具庫,它提供了一系列的函數(shù)來簡化代碼編寫,本文主要為大家介紹了如何使用lodash實(shí)現(xiàn)命名轉(zhuǎn)換和函數(shù)封裝,感興趣的小伙伴可以了解下2023-11-11
js中document.getElementByid、document.all和document.layers區(qū)分介紹
document.getElementById 是公共標(biāo)準(zhǔn),被目前的所有主流瀏覽器支持,document.all只有IE支持,document.layers是Netscape 4.x專有的屬性2011-12-12
Javascript中JSON數(shù)據(jù)分組優(yōu)化實(shí)踐及JS操作JSON總結(jié)
這篇文章主要介紹了Javascript中JSON數(shù)據(jù)分組優(yōu)化實(shí)踐,文中還對JS操作JSON的要領(lǐng)做了總結(jié),需要的朋友可以參考下2017-12-12
JavaScript實(shí)現(xiàn)大數(shù)的運(yùn)算
js的'MAX_SAFE_INTEGER'是9007199254740991,而'MIN_SAFE_INTEGER'為-9007199254740991,那么如何實(shí)現(xiàn)一些特別大的數(shù)目相加?今天我們就來探討下2014-11-11
JS實(shí)現(xiàn)用戶注冊時獲取短信驗證碼和倒計時功能
在用戶注冊時,通常需要短信驗證碼,而且為了交互效果,也需要增加倒計時。該如何實(shí)現(xiàn)獲取驗證碼倒計時功能呢?下面小編給大家分享JS實(shí)現(xiàn)用戶注冊時獲取短信驗證碼和倒計時的代碼,一起看看吧2016-10-10
如何用JS實(shí)現(xiàn)網(wǎng)頁瀑布流布局
這篇文章主要介紹了如何用JS實(shí)現(xiàn)網(wǎng)頁瀑布流布局,幫助大家更好的利用JavaScript制作網(wǎng)頁,感興趣的朋友可以了解下2021-04-04

