javascript对下拉列表框(select)的操作实例讲解


Posted in Javascript onNovember 29, 2013

这篇文章,主要是关于javascript和select相关的最基本方法,以供不熟悉javascript的人参考。常见的情况是,提出表单结构的人, 不仅仅需要为程序设计逻辑,创建数据结构,还需要设计表单的样式,以及熟悉javascript;某些公司可能会要求您精通photoshop:最初的时候,我们都是全才。

下面是我们例子的基础;这不是一个标准的表单。

<form id="f">
<select size="1" name="s">
<option value="3water.com">三水点靠木</option>
<option value="baidu.com">百度</option>
</select>
</form>

---------------------------------------------------------------------------

<script type="text/javascript"> 
<!-- 
var f = document.getElementById("f"); 
//获得select列表项数目 
document.write(f.s.options.length); 
document.write(f.s.length); 
//当前选中项的下标(从0 开始)(有两种方法) 
//如果选择了多项,则返回第一个选中项的下标 
document.write(f.s.options.selectedIndex); 
document.write(f.s.selectedIndex); 
//检测某一项是否被选中 
document.write(f.s.options[0].selected); 
//获得某一项的值和文字 
document.write(f.s.options[0].value); 
document.write(f.s.options[1].text); 
//删除某一项 
f.s.options[1] = null; 
//追加一项 
f.s.options[f.s.options.length] = new Option("追加的text", "追加的value"); 
//更改一项 
f.s.options[1] = new Option("更改的text", "更改的value"); 
//也可以直接设置该项的 text 和 value 
//--> 
</script> 

//全选列表中的项 
function SelectAllOption(list) 
{ 
for (var i=0; i<list.options.length; i++) 
{ 
list.options[i].selected = true; 
} 
} 

//反选列表中的项 by 3water.com asp学习网 
function DeSelectOptions(list) 
{ 
for (var i=0; i<list.options.length; i++) 
{ 
list.options[i].selected = !list.options[i].selected; 
} 
} 

//返回列表中选择项数目 
function GetSelectedOptionsCnt(list) 
{ 
var cnt = 0; 
var i = 0; 
for (i=0; i<list.options.length; i++) 
{ 
if (list.options[i].selected) 
{ 
cnt++; 
} 
} 
return cnt; 
} 

//清空列表 
function ClearList(list) 
{ 
while (list.options.length > 0) 
{ 
list.options[0] = null; 
} 
} 

//删除列表选中项 
//返回删除项的数量 
function DelSelectedOptions(list) 
{ 
var i = 0; 
var deletedCnt = 0; 
while (i < list.options.length) 
{ 
if (list.options[i].selected) 
{ 
list.options[i] = null; 
deletedCnt++; 
} 
else 
{ 
i++; 
} 
} 
return deletedCnt; 
} 
//此函数查找相应的项是否存在 
//repeatCheck是否进行重复性检查 
//若为"v",按值进行重复值检查 
//若为"t",按文字进行重复值检查 
//若为"vt",按值和文字进行重复值检查 
//其它值,不进行重复性检查,返回false 
function OptionExists(list, optText, optValue, repeatCheck) 
{ 
var i = 0; 
var find = false; 
if (repeatCheck == "v") 
{ 
//按值进行重复值检查 
for (i=0; i<list.options.length; i++) 
{ 
if (list.options[i].value == optValue) 
{ 
find = true; 
break; 
} 
} 
} 
else if (repeatCheck == "t") 
{ 
//按文字进行重复检查 
for (i=0; i<list.options.length; i++) 
{ 
if (list.options[i].text == optText) 
{ 
find = true; 
break; 
} 
} 
} 
else if (repeatCheck == "vt") 
{ 
//按值和文字进行重复检查 
for (i=0; i<list.options.length; i++) 
{ 
if ((list.options[i].value == optValue) && (list.options[i].text == optText)) 
{ 
find = true; 
break; 
} 
} 
} 
return find; 
} 

//向列表中追加一个项 
//list 是要追加的列表 
//optText 和 optValue 分别表示项的文字和值 
//repeatCheck 是否进行重复性检查,参见 OptionExists 
//添加成功返回 true,失败返回 false 
function AppendOption(list, optText, optValue, repeatCheck) 
{ 
if (!OptionExists(list, optText, optValue, repeatCheck)) 
{ 
list.options[list.options.length] = new Option(optText, optValue); 
return true; 
} 
else 
{ 
return false; 
} 
} 

//插入项 
//index 插入位置,当插入位置 >= 列表现有项数量时,其作用相当于不进行重复检查的追加项 
//optText 和 optValue 分别表示项的文字和值 
function InsertOption(list, index, optText, optValue) 
{ 
var i = 0; 
for (i=list.options.length; i>index; i--) 
{ 
list.options[i] = new Option(list.options[i-1].text, list.options[i-1].value); 
} 
list.options[index] = new Option(optText, optValue); 
} 
//将一个列表中的项导到另一个列表中 
//repeatCheck是否进行重复性检查,参见OptionExists 
//deleteSource项导到目标后,是否删除源列表中的项 
//返回影响的项数量 
function ListToList(sList, dList, repeatCheck, deleteSource) 
{ 
//所影响的行数 
var lines = 0; 
var i = 0; 
while (i<sList.options.length) 
{ 
if (sList.options[i].selected && AppendOption(dList, sList.options[i].text, sList.options[i].value, repeatCheck)) 
{ 
//添加成功 
lines++; 
if (deleteSource) 
{ 
//删除源列表中的项 
sList.options[i] = null; 
} 
else 
{ 
i++; 
} 
} 
else 
{ 
i++; 
} 
} 
return lines; 
} 

//列表中选中项上移 
function MoveSelectedOptionsUp(list) 
{ 
var i = 0; 
var value = ""; 
var text = ""; 
for (i=0; i<(list.options.length-1); i++) 
{ 
if (!list.options[i].selected && list.options[i+1].selected) 
{ 
value = list.options[i].value; 
text = list.options[i].text; 
list.options[i] = new Option(list.options[i+1].text, list.options[i+1].value); 
list.options[i].selected = true; 
list.options[i+1] = new Option(text, value); 
} 
} 
} 

//列表中选中项下移 
function MoveSelectedOptionsDown(list) 
{ 
var i = 0; 
var value = ""; 
var text = ""; 
for (i=list.options.length-1; i>0; i--) 
{ 
//3water.com 
if (!list.options[i].selected && list.options[i-1].selected) 
{ 
value = list.options[i].value; 
text = list.options[i].text; 
list.options[i] = new Option(list.options[i-1].text, list.options[i-1].value); 
list.options[i].selected = true; 
list.options[i-1] = new Option(text, value); 
} 
} 
}

 

Javascript 相关文章推荐
greybox——不开新窗口看新的网页
Feb 20 Javascript
Chrome Form多次提交表单问题的解决方法
May 09 Javascript
jQuery之排序组件的深入解析
Jun 19 Javascript
angularjs指令中的compile与link函数详解
Dec 06 Javascript
scrollWidth,clientWidth,offsetWidth的区别
Jan 13 Javascript
JavaScript实现99乘法表及隔行变色实例代码
Feb 24 Javascript
AngularJS实现进度条功能示例
Jul 05 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
Jul 25 Javascript
Element-ui tree组件自定义节点使用方法代码详解
Sep 17 Javascript
JavaScript鼠标拖拽事件详解
Apr 03 Javascript
vue 清空input标签 中file的值操作
Jul 21 Javascript
js实现筛选功能
Nov 24 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
Nov 28 #Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
Nov 28 #Javascript
JS小功能(checkbox实现全选和全取消)实例代码
Nov 28 #Javascript
JS小功能(onmouseover实现选择月份)实例代码
Nov 28 #Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
Nov 28 #Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
Nov 28 #Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
Nov 28 #Javascript
You might like
实用函数5
2007/11/08 PHP
zend framework多模块多布局配置
2011/02/26 PHP
php include类文件超时问题处理
2015/02/06 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
Python写的一个简单DNS服务器实例
2014/06/04 Python
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
2019/05/04 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
Python实现FLV视频拼接功能
2020/01/21 Python
Python生成器常见问题及解决方案
2020/03/21 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
大专自我鉴定范文
2013/10/23 职场文书
经济与贸易专业应届生求职信
2013/11/19 职场文书
新员工欢迎词
2014/01/12 职场文书
酒店开业策划方案
2014/06/02 职场文书
节能环保演讲稿
2014/08/28 职场文书
工作经验交流材料
2014/12/30 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript