可以多选的下拉列表框的操作方法和复选框很相似。请注意,和下拉列表框(单选)不同,即使访问<select>
元素的value属性,也只能得到第一个选中的值。
●清单6-23 list.html(上)/list.js(下)
喜欢的食物是?:
"拉面" 拉面
"饺子" 饺子
"烤肉" 烤肉
"发送"
获取指定的列表框(name)的值
// 用来存储选中的值的数组
// 遍历<option>
元素,查看是否是选中状态
// 将选中的项目的值添加到数组中
// 点击按钮时将选中项目的值显示到对话框中
// JavaScript完全学习教程
喜欢的食物是?: 拉面 饺子 烤肉 发送
localhost的内容:
拉面,烤肉
禁止此页再显示对话框
●罗列选中的项目
要判断列表框的选中值,首先,要获取<select>
元素下的<option>
元素组。对此,只要通过获取的Element对象(<select>
元素)访问options属性就可以了(①)。
options属性将<option>
元素组(HTMLOptionsCollection对象)作为返回值返回。因此,在②中需要使用for循环依次取出<option>
元素并判断选择状态。但是,要判断<option>
元素是否选中需要使用selected属性(不是checked属性)来判断。
下面是设定列表框的值的例子。再次理解一遍以复习目前为止所介绍内容,可以尝试根据注释自己解读代码的流程。
●清单6-24 list_set.html(上)/list_set.js(下)
喜欢的食物是?:
"拉面" 拉面
"饺子" 饺子
"烤肉" 烤肉
"发送"
// 给指定的列表框(name数组)设值
// 遍历<option>
元素,检索值相等的元素
// 如果value数组中有和value属性相等的元素就设为选中状态
// 将列表框的初始值设为「饺子」「烤肉」
['饺子','烤肉']
JavaScript完全学习教程
喜欢的食物是?:
拉面 饺子 烤肉 发送
●设定列表框food的初始值