你的位置:首页 > Java教程

[Java教程]深入理解表单脚本系列第四篇——选择框脚本


×
目录
[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);//0console.log(option.label);//1,IE9-浏览器返回空字符串''console.log(option.selected);//trueconsole.log(option.text);//1console.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>




跟团普吉岛旅游需要多少钱几月份去普吉岛旅游最好什么时候去普吉岛旅游最便宜去普吉岛旅游跟团要多少钱去普吉岛旅游需要多少钱东部华侨城“冰雪圣诞 祈福新年”浪漫降临 香蜜山生态果庄有直达车吗?从化香蜜山生态果庄在哪里坐车? 从化香蜜山各季节都有什么?香蜜山生态果庄什么最好吃? 从化香蜜山生态果庄冬季采摘什么?香蜜山生态果庄怎么收费? 广东科学中心电影院9月节目预告?广东科学中心电影排期? 深圳明马轩农庄具体位置?明马轩农庄旅游攻略? 深圳南澳名马轩度假山庄怎么样?南澳名马轩一日游攻略? 名马轩山庄地址?深圳名马轩山庄在哪里? 亚龙湾热带天堂森林公园门票_热带天堂森林公园门票价格 亚龙湾海底世界门票价格_三亚亚龙湾海底世界门票多少钱 蜈支洲岛景点推荐_蜈支洲岛景点介绍 亚龙湾森林公园特色景观推荐 深圳欢乐谷夜场_深圳欢乐谷夜场门票 太行山在哪里_太行山在哪个省_太行山在什么地方 清明上河园门票_开封清明上河园门票价格 武汉欢乐谷门票价格_武汉欢乐谷夜场票价多少钱_欢乐谷几点开门 HL-30805ET Datasheet HL-30805ET Datasheet HL-30805GD Datasheet HL-30805GD Datasheet HL-30805GT Datasheet HL-30805GT Datasheet 1月适合旅游的地方 1月适合旅游的地方 1月适合旅游的地方 1月去哪里旅游比较好 1月去哪里旅游比较好 1月去哪里旅游比较好 1月旅游好去处 1月旅游好去处 1月旅游好去处