select 元素可创建单选或多选菜单。当提交表单时,浏览器会提交选定的项目,或者收集用逗号分隔的多个选项,将其合成一个单独的参数列表,并且在将 <select> 表单数据提交给服务器时包括 name 属性。

一、基本用法:

<select>

<option value ="volvo">Volvo</option>

<option value ="saab">Saab</option>

<option value="opel">Opel</option>

<option value="audi">Audi</option>

</select>

其中,</option>标签可以省掉,在页面中用法

<SELECT NAME="studyCenter" id="studyCenter"  SIZE="1">

<OPTION VALUE="0">全部

<OPTION VALUE="1">湖北电大网络学习中心

<OPTION VALUE="2">成都师范学院网络学习中心

<OPTION VALUE="3">武汉职业技术学院网络学习中心

</SELECT>

二、Select元素还可以多选,看如下代码:

//有multiple属性,则可以多选

<select name= “education” id=”education” multiple=”multiple”>

       <option value=”1”>高中</option>

       <option value=”2”>大学</option>

       <option value=”3”>博士</option>

</select>



//下面没有multiple属性
, 只显示一条,不能多选

<select name= “education” id=”education” >

       <option value=”1”>高中</option>

       <option value=”2”>大学</option>

       <option value=”3”>博士</option>

</select>

//下面是设置了size属性的情况
, 如果size = 3
那么就显示三条数据,注意不能多选的。

<select name="education" id="education" size='3'>

         <option value="0">小学</option>

         <option value="1">初中</option>

         <option value="2">高中</option>

         <option value="3">中专</option>

         <option value="4">大专</option>

         <option value="5">本科</option>

         <option value="6">研究生</option>

         <option value="7">博士</option>

         <option value="8">博士后</option>

         <option selected>请选择</option>

</select>

三、 多选Select组件涉及的所有常用操作:

1.     
判断select选项中是否存在指定值的Item

@param objSelectId
将要验证的目标select组件的id

@param objItemValue
将要验证是否存在的值

function isSelectItemExit(objSelectId,objItemValue)  { 


 var objSelect = document.getElementById(objSelectId);

    var isExit = false; 

    if (null != objSelect && typeof(objSelect) != "undefined") {

     for(var i=0;i<objSelect.options.length;i++) { 

         if(objSelect.options[i].value == objItemValue) { 

             isExit = true; 

             break; 

         } 

     } 

    }

    return isExit;

 }

2.     
向select选项中加入一个Item

@param  objSelectId 将要加入item的目标select组件的id

@param objItemText 将要加入的item显示的内容

@param objItemValue 将要加入的item的值

function addOneItemToSelect(objSelectId,objItemText,objItemValue) { 


 var objSelect = document.getElementById(objSelectId);

    if (null != objSelect && typeof(objSelect) != "undefined") {

      //判断是否该值的item已经在select中存在


     if(isSelectItemExit(objSelectId,objItemValue)) { 

         $.messager.alert('提示消息','该值的选项已经存在!','info');

     }  else  {

         var varItem = new Option(objItemText,objItemValue); 

         objSelect.options.add(varItem); 

     } 

    }

}

3.   
从select选项中删除选中的项,支持多选多删

@param objSelectId 将要进行删除的目标select组件id

function removeSelectItemsFromSelect(objSelectId) { 


 var objSelect = document.getElementById(objSelectId);

 var delNum = 0;

     if (null != objSelect && typeof(objSelect) != "undefined") {

        for(var i=0;i<objSelect.options.length;i=i+1) { 

            if(objSelect.options[i].selected) { 

                objSelect.options.remove(i); 

                delNum = delNum + 1;

                i = i - 1;

            } 

        }        

     if (delNum <= 0 ) {

      $.messager.alert('提示消息','请选择你要删除的选项!','info');

     } else {

      $.messager.alert('提示消息','成功删除了'+delNum+'个选项!','info');

     }

     }

}

4.     
从select选项中按指定的值删除一个Item  


  @param objSelectId 将要验证的目标select组件的id

  @param objItemValue 将要验证是否存在的值

function removeItemFromSelectByItemValue(objSelectId,objItemValue) { 


 var objSelect = document.getElementById(objSelectId);

     if (null != objSelect && typeof(objSelect) != "undefined") {

      //判断是否存在

       if(isSelectItemExit(objSelect,objItemValue)) { 

         for(var i=0;i<objSelect.options.length;i++) { 

             if(objSelect.options[i].value == objItemValue) { 

                 objSelect.options.remove(i); 

                 break; 

             } 

         }        

         $.messager.alert('提示消息','成功删除!','info');            


     } else { 

         $.messager.alert('提示消息','不存在指定值的选项!','info'); 


     }    

     }

}

5.     
清空select中的所有选项

@param objSelectId 将要进行清空的目标select组件id

function clearSelect(objSelectId) { 

 var objSelect = document.getElementById(objSelectId);

     if (null != objSelect && typeof(objSelect) != "undefined") {

        for(var i=0;i<objSelect.options.length;) { 

          objSelect.options.remove(i); 

        }        

     }

}

6.
获取select中的所有item,并且组装所有的值为一个字符串,值与值之间用逗号隔开

 @param objSelectId 目标select组件id

 @return select中所有item的值,值与值之间用逗号隔开

function getAllItemValuesByString(objSelectId) {

 var selectItemsValuesStr = "";

 var objSelect = document.getElementById(objSelectId);

 if (null != objSelect && typeof(objSelect) != "undefined") {

      var length = objSelect.options.length

        for(var i = 0; i < length; i = i + 1) { 

         if (0 == i) {

            selectItemsValuesStr = objSelect.options[i].value;

         } else {

            selectItemsValuesStr = selectItemsValuesStr + "," + objSelect.options[i].value;

         }

        }  

     } 

     return selectItemsValuesStr;

}

7.
将一个select中的所有选中的选项移到另一个select中去

  @param fromObjSelectId  移动item的原select组件id

  @param toObjectSelectId  移动item将要进入的目标select组件id

 function moveAllSelectedToAnotherSelectObject(fromObjSelectId, toObjectSelectId) { 


 var objSelect = document.getElementById(fromObjSelectId);

 var delNum = 0;

     if (null != objSelect && typeof(objSelect) != "undefined") {

        for(var i=0;i<objSelect.options.length;i=i+1) { 

            if(objSelect.options[i].selected) { 

                addOneItemToSelect(toObjectSelectId,objSelect.options[i].text,objSelect.options[i].value)

                objSelect.options.remove(i);

                i = i - 1;

            }

        }        

     }

}

8.
将一个select中的所有选项移到另一个select中去

 @param fromObjSelectId 
移动item的原select组件id

 @param toObjectSelectId  移动item将要进入的目标select组件id

 function moveAllToAnotherSelectObject(fromObjSelectId, toObjectSelectId) { 

 var objSelect = document.getElementById(fromObjSelectId);

     if (null != objSelect) {

      for(var i=0;i<objSelect.options.length;i=i+1) { 

             addOneItemToSelect(toObjectSelectId,objSelect.options[i].text,objSelect.options[i].value)

             objSelect.options.remove(i);

             i = i - 1;

        }  

     }

}

HTML中select标签单选多选详解的更多相关文章

  1. maven 依赖中scope标签的配置范围详解

    在创建Maven项目时,需要在pom.xml 文件中添加相应的依赖,其中有一个scope标签,该标签是设置该依赖范围 (maven项目包含三种classpath{编译classpath,测试class ...

  2. spring中bean标签factory-method和factory-bean)详解工厂方法(factory-method和factory-bean)

    转自:http://blog.sina.com.cn/s/blog_6d3c1ec601019f3j.html A.factory-method The name of a factory metho ...

  3. 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程)

    1.简介 在实际自动化测试过程中,我们也避免不了会遇到下拉选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助. 2.select 下拉框 2.1Select ...

  4. (转载) Linux IO模式及 select、poll、epoll详解

    注:本文是对众多博客的学习和总结,可能存在理解错误.请带着怀疑的眼光,同时如果有错误希望能指出. 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案 ...

  5. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

  6. (转)Linux IO模式及 select、poll、epoll详解

    本文为转载,并作了部门调整.修改. [原文出处:https://segmentfault.com/a/1190000003063859] 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么 ...

  7. 【转】angularjs指令中的compile与link函数详解

    这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下   通常大家在 ...

  8. 网络通信 --> IO多路复用之select、poll、epoll详解

    IO多路复用之select.poll.epoll详解      目前支持I/O多路复用的系统调用有 select,pselect,poll,epoll,I/O多路复用就是通过一种机制,一个进程可以监视 ...

  9. angularjs指令中的compile与link函数详解

    这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下   通常大家在 ...

随机推荐

  1. 破解官方recovery的签名验证

    步骤简述1.解包recovery.img,2.反编译/sbin/recovery,用ida64plus3.在反编译出来的文本中查找:signature 4.简单的看一下指令流程,CBZ下面是faile ...

  2. Gradle Android客户端程序打包(基于gradle 1.12版本验证通过)

    一.前言 android客户端开发进入尾声,负责SEO同事突然发给我一个涉及45个发布渠道的噩耗,之前只发布自有渠道的工作方式(手动修改参数打包)已经不满足需求,所以引入最近比较流行的gradle打包 ...

  3. 使用jcifs.smb.SmbFile读取Windows上共享目录的文件

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws Servl ...

  4. 怪胎:Android开发ImageView图片无法显示

    今天碰到一个非常奇怪的问题: 在Android中ImageView无法显示加载的本地SDCard图片. 具体过程是:先调用本地照相机程序摄像,然后将拍摄的图片加载在ImageView中显示. publ ...

  5. java实现二维码

    说起二维码,微信好像最先启用,随后各类二维码就开始流行起来了.那什么是二维码呢. 1.什么是二维码?百度一下即可 http://baike.baidu.com/view/132241.htm?fr=a ...

  6. 2015第24周三Spring事务3

    在一个典型的事务处理场景中,有以下几个参与者: Resource Manager(RM) ResourceManager简称RM,它负责存储并管理系统数据资源的状态,比如数据库服务器,JMS消息服务器 ...

  7. Android 开机启动通知

    效果图: 学习: 1.静态注册实现开机启动 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLET ...

  8. 使用Python,字标注及最大熵法进行中文分词

    使用Python,字标注及最大熵法进行中文分词 在前面的博文中使用python实现了基于词典及匹配的中文分词,这里介绍另外一种方法, 这种方法基于字标注法,并且基于最大熵法,使用机器学习方法进行训练, ...

  9. Ubuntu mysql安装,还有可视化界面

    安装mysql sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install lib ...

  10. Javascript:重用之道

    近期写了大量的js,愈发觉得自己的代码过于冗余,所以,利用周末的时间研习代码重用之道,有了这篇博文所得: 重用代码: 1.尽量保证 HTML 代码结构一致,可以通过父级选取子元素 2.把核心主程序实现 ...