表单元素-select

 1     (function(window,document,undefined){
 2         window.OperSelect = function(selector,option){
 3             var _select = document.querySelector(selector);
 4             this.add = function(newoption,relOption){
 5                 _select.add(newoption,relOption);
 6             },
 7             this.remove = function(index){
 8                 _select.remove(index);
 9             },
10             this.getSelected = function(){
11                 return _select.value;
12             },
13             this.getValue = function(){
14                 return _select.value;
15             }
16         };
17     })(window,document,undefined);

这只是对简单的select 元素的基本操作。

  •   HTMLSelectElement  select

select又叫选择框,是通过 select 和 option元素创建的。为了方便与这个控件交互,除了所有表单字段共有属性外,

     类型还提供了下列属性和方法。

add(newOption,relOption) 向控件中添加选项
multiple 布尔值,表示是否允许多选
options           控件所有的option集合 HTMLCollection
remove(index) 移除给定位置的选项
selectedIndex   选项的索引,如果没有选中择为-1,如果选择是多项式,则为保存第一项的索引
size         选择框中可见的行数
value     选择框选中的值

注意:  当没有选择任何一项时,获取value时返回空;

当选择了option时,并存在value属性,其值就是对应的 value

当选择了option时,并不存在HTML属性value时,则其值对应为 option的文本内容供。

  

<form>
    <select   multiple="true" size="2">
        <option value="JMS HADEN">JMS HADEN</option>
        <option value="US">US</option>
        <option value="JMS">JMS</option>
        <option value="HADEN">HADEN</option>
    </select>

    <button type="button">add</button>
    <button type="button">remove</button>
    <button type="button">getValue</button>
</form>
      var selectbox = document.forms[0].elements[0];
    var btn1 = document.forms[0].elements[1];
    var btn2 = document.forms[0].elements[2];
    var btn3 = document.forms[0].elements[3];
    var operSelect = new OperSelect("select",null);
    selectbox.addEventListener("change",function(){
        console.log(this.value);
        console.log(this.selectedIndex);
    },false);

    btn1.addEventListener("click",function(event){
        var lastchild = selectbox.options.length;
        var o = document.createElement("option");
        var text = document.createTextNode("王景");
            o.setAttribute("value","wj");
            o.appendChild(text);
        operSelect.add(o,selectbox.options[lastchild-1]);
    },false)

    btn2.addEventListener("click",function(event){
        var lastchild = selectbox.options.length-1;
        operSelect.remove(lastchild);
    },false);
    btn3.addEventListener("click",function(event){
        alert(operSelect.getValue());
    },false);

上面主要对其表述的几个属性的操作:add、remove 、value 、selectIndex。

  

  •   HTMLOptionElement  option
index   当前选项在Options集中的索引
label   当前选项的标签
selected   表述选项是否被选中,选中为true 
text 选项的文本
value 选择项的value值

其中大部分属性的目的,都是为了方便对选项数据的访问。虽然也可以使用常规的DOM功能来访问这些信息,但效率是比较低的,如下面的例子所示:

   //不推荐
    var text = selectbox.options[0].firstChild.nodeValue;
    var value = selectbox.options[0].getAttribute("value");

    //推荐

    var text = selectbox.options[0].text;
    var value = selectbox.options[0].value;

所以一般在操作选项时,最好使用特定于选项的属性,因为浏览器都支持这些属性。

  • change事件触发时机:在选项发送改变时触发,与前面表述的 input等表单元素不一样。

★★:select对象的 value值因浏览器而异,在IE8以及低版中,当未指定value属性时,其返回的值为空。但是IE9+ 、Safari、Firefox、Chrome、Opera则会返回与text特性相同的值

时间: 2024-10-12 11:23:17

表单元素-select的相关文章

[ jquery 方法val([val|fn|arr]) ] 此方法获得匹配元素的当前值,常应用于表单元素,select....

获得匹配元素的当前值,常应用于表单元素,select....,可读可写 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keywor

jQuery获取Select选择的Text(非表单元素)和 Value(表单元素)(转)

jQuery获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 2. var checkText=$("#select_id").find("option:selected").text(); //获取Select选择的Text 3. var checkValue=$("#selec

利用jQuery来简化radio,checkbox,select,radio表单元素的操作

获取一组radio被选中项的值 var item = $('input[@name=items][@checked]').val(); 获取select被选中项的文本 var item = $("select[@name=items] option[@selected]").text(); select下拉框的第二个元素为当前选中值 $('#select_id')[0].selectedIndex = 1; radio单选组的第二个元素为当前选中值.前端框架分享 $('input[@n

jquery attr处理checkbox / select 等表单元素时的坑

先上html结构 <body> <form action=""> <input type="checkbox" id="checkedAll">全选/全不选<br> <input type="checkbox" name="items" value="足球">足球 <input type="checkbox&qu

第 10 章 表单元素[下]

学习要点: 1.其他元素 2.输入验证 主讲教师:李炎恢 本章主要探讨 HTML5 中表单中剩余的其他元素,然后重点了解一下表单的输入验证功能. 一.其他元素 表单元素还剩下几个元素没有讲解,包括下拉框列表 select.多行文本框 textarea.和 output 计算结果元素. 元素名称 说明 select 生成一个下拉列表进行选择 optgroup 对 select 元素进行编组 option select 元素中的项目 textarea 生成一个多行文本框 output 表示计算结果

html5新增表单元素和属性

从三方面来介绍html5表单的新特性表单结构更灵活 要提交数据的控件可以布局在form标签之外,看下面的代码,表单元素可以写到form元素之外,只需在元素中加入form="form1"属性,也可提交到form元素指定的服务器地址 <body><form action="upload.php" method="post" accept-charset="utf-8" id="form1"&g

表单元素

1.单行文本框<input type="text"/>(input 的type 属性的默认值就是"text") <input type = "text" name="名称"/> 以下是单行文本框的主要属性: size:指定文本框的宽度,以字符个数为单位:在大多数浏览器中,文本框的缺省宽度是20个字符. value:指定文本框的默认值,是在浏览器第一次显示表单或者用户单击<input type=&q

JQuery表单元素过滤选择器

此选择器主要是对所选择的表单元素进行过滤: 选择器 描述 返回 enabled 选择所有的可用的元素 集合元素 disabled 选择所有的不可用的元素 集合元素 checked 选择所有被选中的元素(单选框,复选框) 集合元素 selected 选择所有被选中选项元素(下拉列表) 集合元素 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd&q

去除表单元素的默认样式

一.使用 appearance 改变 webkit 浏览器的默认外观 webkit 内核浏览器具备私有属性" -webkit-appearance "可以改变元素的外观,该属性非常强大,适合大部分标签,这对于 webkit 的页面优化带来极大的帮助. 禁用表单input.select元素的默认外观 input,select{ -webkit-appearance:none; appearance:none; } 二.使用伪元素改变 IE10 表单元素默认外观 禁用 select 默认下