深入理解表单脚本系列第四篇——选择框脚本

×

目录

[1]select [2]option [3]添加选项[4]移除选项

前面的话

  选择框是通过<select>和<option>元素创建的,又称为下拉列表框。为了方便与这个控件交互,除了所有表单字段共有的属性和方法外,javascript还提供了一些属性和方法。本文将详细介绍选择框脚本

<select>

  首先介绍关于<select>元素的相关属性

multiple

  multiple属性表示是否允许多项选择

<select name="test" id="test">
    <option>1</option>
    <option>2</option>
    <option>3</option>
</select>
<button id="btn">是否多选</button>
<script>
btn.onclick = function(){
    test.multiple = !test.multiple;
}
</script>

type

  选择框的type属性有两种,一种是‘select-one‘,表示单选;另一种是‘select-multiple‘,表示多选

<select name="test" id="test">
    <option>1</option>
    <option>2</option>
    <option>3</option>
</select>
<button id="btn">是否多选</button>
<div id="result"></div>
<script>
btn.onclick = function(){
    test.multiple = !test.multiple;
    result.innerHTML = test.type;
}
</script>

value

  选择框的value属性由当前选中项决定

  1、如果没有选中的项,则选择框的value属性保存空字符串

  2、如果有一个选中项,而且该项的value特性已经在HTML中指定,则选择框的value属性等于选中项的value特性。即使value特性的值是空字符串,也同样遵循此条规则

  3、如果有一个选中项,但该项的value特性在HTML中未指定,则选择框的value属性等于该项的文本

  4、如果有多个选中项,则选择框的value属性将依据前两条规则取得第一个选中项的值

  [注意]IE8-浏览器只支持value属性的值,不支持选择的文本值

<select name="test" id="test">
    <option value="a">1</option>
    <option value="b">2</option>
    <option>3</option>
</select>
<button id="btn1">是否多选</button>
<button id="btn2">获取value值</button>
<div id="result"></div>
<script>
btn1.onclick = function(){
    test.multiple = !test.multiple;
}
btn2.onclick = function(){
    result.innerHTML = test.value;
}
</script>

selectedIndex

  selectedIndex属性返回基于0的选中项的索引,如果没有选中项,则值为-1。对于支持多选的控件,只保存选中项中第一项的索引

<select name="test" id="test">
    <option value="a">1</option>
    <option value="b">2</option>
    <option>3</option>
</select>
<button id="btn1">是否多选</button>
<button id="btn2">获取索引</button>
<div id="result"></div>
<script>
btn1.onclick = function(){
    test.multiple = !test.multiple;
}
btn2.onclick = function(){
    result.innerHTML = test.selectedIndex;
}
</script>

size

  size属性表示选择框的可见行数

<select name="test" id="test">
    <option value="a">1</option>
    <option value="b">2</option>
    <option>3</option>
</select>
<button id="btn1">可见1行</button>
<button id="btn2">可见2行</button>
<button id="btn3">可见3行</button>
<div id="result"></div>
<script>
btn1.onclick = function(){
    test.size = 1;
}
btn2.onclick = function(){
    test.size = 2;
}
btn3.onclick = function(){
    test.size = 3;
}
</script>

options

  options属性表示控件中所有的<option>元素

<select name="test" id="test">
    <option value="a">1</option>
    <option value="b">2</option>
    <option>3</option>
</select>
<script>
//[option, option, option, selectedIndex: 0]
console.log(test.options)
</script>

<option>

  在DOM中,每个<option>元素都有一个HTMLOptionElement对象表示。为便于访问数据, HTMLOptionElement对象也定义了一些属性

  [注意]IE浏览器不支持为<option>元素设置display:none

index

  index属性表示当前选项在options集合中的索引

label

  label属性表示当前选项的标签

  [注意]IE9-浏览器不支持

selected

  selected属性表示当前选项是否被选中。将这个属性设置为true可以选中当前选项

text

  text属性表示选项的文本

value

  value属性表示选项的值

  [注意]在未指定value特性的情况下,IE8会返回空字符串;而其他浏览器返回text属性的值

<select name="test" id="test">
    <option value="a" selected>1</option>
    <option value="b">2</option>
    <option>3</option>
</select>
<script>
var option = test.options[0];
console.log(option.index);//0
console.log(option.label);//1,IE9-浏览器返回空字符串‘‘
console.log(option.selected);//true
console.log(option.text);//1
console.log(option.value);//a
</script>

添加选项

  【1】添加选项可以使用DOM的appendChild()或insertBefore()方法

<select name="test" id="test">
    <option>1</option>
    <option>3</option>
</select>
<button id="btn">增加选项2</button>
<script>
btn.onclick = function(){
    var newOption = document.createElement(‘option‘);
    newOption.innerHTML = 2;
    test.insertBefore(newOption,test.options[1]);
}
</script>

  【2】可以使用选择框的add()方法,add(newoption,reloption)方法向控件中插入新<option>元素,其位置在相关项(reloption)之前

  使用Option构造函数来创建新选项,接受两个参数:文本(text)和值(value),第二个参数可选

<select name="test" id="test">
    <option>1</option>
    <option>3</option>
</select>
<button id="btn">增加选项2</button>
<script>
btn.onclick = function(){
    var newOption = new Option(‘2‘);
    test.add(newOption,1);
}
</script>

移除选项

  与添加选项类似,移除选项的方式也有很多种

  【1】使用DOM的removeChild()方法

<select name="test" id="test">
    <option>1</option>
    <option>2</option>
    <option>3</option>
</select>
<button id="btn">移除选项2</button>
<script>
btn.onclick = function(){
    test.removeChild(test.options[1]);
}
</script>

  【2】使用选择框的remove()方法。这个方法接受一个参数,即要移除选项的索引

  [注意]使用该方法的好处是,若不存在被移除选项的索引,不会报错,只是静默失败

<select name="test" id="test">
    <option>1</option>
    <option>2</option>
    <option>3</option>
</select>
<button id="btn">移除选项2</button>
<script>
btn.onclick = function(){
    test.remove(1);
}
</script>

  【3】将相应选项设置为null

  [注意]该方法同样不会报错

<select name="test" id="test">
    <option>1</option>
    <option>2</option>
    <option>3</option>
</select>
<button id="btn">移除选项2</button>
<script>
btn.onclick = function(){
    test.options[1] = null;
}
</script>
时间: 2024-10-29 10:45:42

深入理解表单脚本系列第四篇——选择框脚本的相关文章

深入理解表单脚本系列第三篇——选择文本

× 目录 [1]select() [2]select事件 [3]setSelectionRange() 前面的话 表单是最早用来与用户交互的工具,具有丰富的控件和属性.基本上,它们通过各种控件和属性就可以解决大部分问题.但还有一些问题还是需要表单脚本来实现的,比如本文将要说到的选择文本 select() select()方法用于选择文本框(指type为text的input元素和textarea元素)中的所有文本,该方法不接受参数,且无返回值 <input id="text" va

深入理解脚本化CSS系列第四篇——脚本化样式表

× 目录 [1]CSSStyleSheet [2]CSSRule 前面的话 关于脚本化CSS,查询样式时,查询的是计算样式:设置单个样式时,设置的是行间样式:设置多个样式时,设置的是CSS类名.脚本化样式表当然也是一种脚本化CSS的技术,虽然不经常使用,但有时却非常有用.下面将详细介绍脚本化样式表的内容 CSSStyleSheet CSSStyleSheet类型表示的是样式表.我们知道,引入CSS一共有3种方式,包括行间样式.内部样式和外部样式.其中,内部样式和外部样式分别通过<style>和

深入理解DOM事件类型系列第四篇——剪贴板事件

× 目录 [1]定义 [2]对象方法 [3]应用 前面的话 剪贴板操作可能看起来不起眼,但是却十分有用,可以增强用户体验,方便用户操作.本文将详细介绍剪贴板事件 定义 剪贴板操作包括剪切(cut).复制(copy)和粘贴(paste)这三个操作,快捷键分别是ctrl+x.ctrl+c.ctrl+v.当然也可以使用鼠标右键菜单进行操作 关于这3个操作共对应下列6个剪贴板事件 copy:在发生复制操作时触发 cut:在发生剪切操作时触发 paste:在发生粘贴操作时触发 IE浏览器只有在文本中选定字

深入理解javascript作用域系列第四篇——块作用域

× 目录 [1]let [2]const [3]try 前面的话 尽管函数作用域是最常见的作用域单元,也是现行大多数javascript最普遍的设计方法,但其他类型的作用域单元也是存在的,并且通过使用其他类型的作用域单元甚至可以实现维护起来更加优秀.简洁的代码,比如块作用域.随着ES6的推广,块作用域也将用得越来越广泛.本文是深入理解javascript作用域系列第四篇——块作用域 let for (var i= 0; i<10; i++) { console.log(i); } 上面这段是很熟

shell脚本第四篇——常用小脚本

shell脚本第四篇--常用小脚本 1.将系统进程按内存占用大小排列显示出来 # ps -e  -o "%C   : %p : %z : %a"|sort -k5-nr 2.将系统进程按CPU占用大小排列显示 # ps -e  -o "%C   : %p : %z : %a"|sort   -nr 或# ps aux --sort -rss 3.查找当前目录下占用为0字节的文件并删除 # find ./ -type f -size 0 -exec rm -rf {}

《JAVASCRIPT高级程序设计》选择框脚本和富文本编辑

一.选择框脚本 选择框也是表单的一个字段,是通过<select>和<option>元素来创建的,需要使用javascript来控制.选择框拥有以下的属性和方法: 以下介绍一些选择框的常用方法: 1.获取选择项 var selectbox = document.forms[0].elements["selectID"]; // 选择第0项的值和文本 var text = selectbox.options[0].text; var value = selectbo

深入理解表单脚本系列第一篇——表单对象

× 目录 [1]表单属性 [2]表单事件 [3]表单方法 前面的话 javascript最初的一个应用就是分担服务器处理表单的责任,打破处处依赖服务器的局面.尽管目前的web和javascript已经有了长足的发展,但web表单的变化并不明显.由于web表单没有为许多常见任务提供现成的解决方法,很多开发人员不仅会在验证表单时使用javascript,而且还增强了一些标准表单控件的默认行为.本文是表单脚本系列第一篇——表单对象 表单属性 在HTML中,表单是由form元素来表示的,而在javasc

深入理解表单脚本系列第二篇——表单字段

× 目录 [1]访问 [2]属性 [3]方法[4]事件 前面的话 表单字段又叫表单元素,表示表单所包含控件,如<input>.<select>等.本文将详细介绍表单字段的内容 访问 每个表单都有elements属性,该属性是表单中所有元素的集合.这个elements集合是一个有序列表,其中包含着表单中的所有字段,如<input>.<textarea>.<button>和<fieldset> 每个表单字段在elements集合中的顺序,

基于Extjs的web表单设计器 第四节——控件拖放

接着上一节介绍控件拖放的设计. 通过前面的介绍知道,我们的区域类型的容器控件有三种:Card.Table.Mixed. Card 可以支持几乎所有的常用控件,包括:文本TextField.多文本TextArea.数字NumberField.金额NumberField.日期DateField.下拉树NetDropDown.按钮Button.复选框CheckBox.单选框Radio:Table可以支持的常用控件比Card稍微少一点,它不支持button类型的控件以及多文本TextArea控件:Mix