HTML中select标签单选多选详解

2023-05-16

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;
        }  
     }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 从html中获取原始文本

    我的 Android 开发处于相当基础的水平 我想从 http www google com 等页面获取文本 我将使用的页面只有文字 所以没有图片或类似的东西 因此 需要明确的是 我希望将页面上写入的文本转换为应用程序中的字符串等 我尝试了
  • Bootstrap 手风琴菜单不起作用

    我设计了一个如图所示的手风琴菜单 如果单击菜单 打开的菜单将关闭 这就是手风琴的功能 但在这个设计中 我逐个单击菜单 但前一个没有关闭 如何解决这个问题 提前致谢 jQuery document ready function var acc
  • 覆盖 Enter 键的 SELECT 行为

    使用 HTML 控件 其操作或多或少类似于电子表格 具有可编辑数据单元格的矩阵 当涉及从 SELECT 派生的单元格时 当选择该类型的单元格进行编辑时 我遇到了获得正确行为的问题 如果我使用默认格式 大小 0 渲染 Select 则用户会得
  • SharePoint

    我的 SharePoint 网站上有一个 aspx 页面 其中包含了标签 由于某种原因 页面上的每个按钮在单击时都会重新加载页面 即使没有属性 id class 等 或功能的按钮在单击时也会重新加载页面 我该如何解决这个问题 我什至看不到调
  • 是否可以将CSS应用于半个字符?

    我在寻找什么 一种打造风格的方法HALF一个角色的 在这种情况下 一半的字母是透明的 我目前搜索和尝试过的内容 没有运气 设置半个字符 字母样式的方法 使用 CSS 或 JavaScript 设置字符的一部分样式 将 CSS 应用于字符的
  • ASP.Net 控件的 InnerHTML 和 InnerText 属性之间的区别?

    例如 在使用 ASP NET 控件时 h1 text h1 如果我们想更改标题的文本 我们可以通过两个属性来完成InnerHTML and InnerText 我想知道这两个属性之间的基本区别是什么 InnerHtml让您直接输入 HTML
  • 获取数据框中列与特定值匹配的整数行索引

    给定一个 Pandas 数据框 其中一列如下所示 Date 2016 04 15 2016 04 14 2016 04 13 2016 04 12 2016 04 11 2016 04 08 假设值是唯一的 如何获取特定值的行索引 例如 2
  • Li向左浮动,长度动态:最后一行无边框底部

    情况如下 https jsfiddle net rpepf9xs https jsfiddle net rpepf9xs 我想用选择器 nth last child 删除边框底部 但是 如果列表中只有8个 li 则会出现如下错误 ul di
  • :hover 状态在 iOS 上不会结束

    我有一个带有悬停状态的简单菜单
  • 如何修复网站 iframe 错误?

    当我访问此网址时 警告 推荐使用一些广告拦截器 网页链接加载良好 没有错误 但是 当我尝试通过加载同一页面时iframe在我的html代码中 出现错误 我的html代码
  • 在导航栏下方添加背景图片

    我想在导航栏下方添加背景图像 具有完整窗口大小的宽度 它不应覆盖整个页面长度 而是从导航栏菜单下方开始 一直向下直到特定的指定高度 但宽度是满的 我参考了以下内容 但仍然没有结果 在 Twitter Bootstrap 中的导航栏下方启动背
  • 在 Javascript 中动态添加事件处理程序

    我在使用 Javascript 时遇到了一个奇怪的问题 我得到的是一个特定格式的字符串 我将尝试用它创建一个表 该表每行只有一个单元格 字符串的格式为 每个单元格 行 需要显示内容 将传递给的参数onmouseover当用户将鼠标移动到显示
  • javascript中输入类型时间的值

    我有这个html
  • 如何在 Java 中使用 HTML 解析器和 Apache Tika 来提取所有 HTML 标签?

    我下载了 tika core 和 tika parser 库 但找不到将 HTML 文档解析为字符串的示例代码 我必须删除网页源的所有 html 标签 我能做些什么 如何使用 Apache Tika 进行编码 您想要 html 文件的纯文本
  • 为什么 document.getelementbyId 在 Firefox 中不起作用?

    我不明白为什么 document getElementById 在 Firefox 中不起作用 document getElementById main style width 100 当我检查 Firebug 时 它说 类型错误 docu
  • 使用本机 JavaScript 获取过渡中的 CSS 值

    这个问题之前被问过 但答案使用了 jQuery here https stackoverflow com q 8920934 3186555 因此 我将调整问题以专门询问native解决方案 to 最小化依赖关系 假设您有一个 div 然后
  • 一个接一个地淡入div

    大家好 我很擅长 HTML 和 CSS 但才刚刚开始接触 jQuery 的皮毛 我希望让 3 个 div 在页面加载时逐渐淡入 到目前为止我有这个 我听说使用 css 将显示设置为 none 对于任何使用非 JavaScript 浏览器的人
  • 将 div 文本分配给变量然后显示它

    我有一个简单的任务 我试图完成学习 JavaScript 但一直无法找到明确的答案 这是代码 div Testing div 基本上我希望将方框 div 中的文本存储到变量中 然后 我想在页面的不同部分显示该变量的文本 使用上面的代码我得到
  • 更改javascript nodejs中所有页面的href url

    我已经实现了具有多种语言下拉菜单的引导导航栏 当我选择语言时 它将翻译页面 如何更改其他页面的 url 和按钮文本 当我选择french 将所有网址更改为 fr about and fr contact 如何使用 JavaScript 进行
  • 是否可以使“HTML 到语音”与“文本到语音”相同?

    我有一个奇怪的要求 在我现有的应用程序中我有Text2Speech为此 我使用了AVSpeechSynthesizer 到语音文本 但现在要求发生了变化 现在我需要将 HTML 文件数据转换为文本 例如HTML2Speech 我们可以想到的

随机推荐

  • JS获取地址中的参数

    lt DOCTYPE HTML PUBLIC 34 W3C DTD HTML 4 0 Transitional EN 34 gt lt html gt lt head gt lt title gt 打印 lt title gt lt met
  • less 查看日志,并且搜索

    一 关键字搜索日志 非常实用 1 less catalina out 2 大写字母 xff1a F find的意思 xff0c 并且其实他正在计算行数 直接到达日志最底部 xff0c 也就是最新日志 3 xff1a ctrl 43 c 把上
  • maven配置,以及项目"Dependency 'xxxx‘ not found"解决过程

    maven安装 1 下载maven文件 地址 2 解压好就可以了 xff0c 无需安装 xff0c 3 修改下面配置文件 配置環境变量 xff1a xff08 和配置jdk一样 xff09 检查配置成功没有 xff1a 直接cmd mvn
  • linux修改系统时间

    一 查看和修改Linux的时区1 查看当前时区 命令 xff1a 34 date R 34 1 修改设置Linux服务器时区方法 A 命令 xff1a 34 tzselect 34 依据引导进行选择 二 查看和修改Linux的时间1 查看时
  • Win2012系统忘记密码,修改密码。

    请准备一张相应操作系统版本的光盘 Server2012R2安装光盘ISO 步骤 1在虚拟机的光盘中选择Server2012R2的ISO 并确定 如果是物理机 直接把ISO刻录成光盘 放入光驱即可 2重启服务器 修改启动项从CD ROM启动
  • 防火墙firewall-cmd

    防火墙firewall cmd 一 centos7查看防火墙所有信息 firewall cmd list all 二 centos7查看防火墙开放的端口信息 firewall cmd list ports 三 开放 删除端口号 3 1 开放
  • docker与firewalld冲突解决

    firewall的底层是使用iptables进行数据过滤 xff0c 建立在iptables之上 xff0c 而docker使用iptables来进行网络隔离和管理 xff0c 这可能会与 Docker 产生冲突 当 firewalld 启
  • gradle和gradle wrapper

    wrapper保证了团队中每一个开发者都使用同样版本的Gradle并能使用Gradle进行项目构建 1 Gradle Wrapper 是什么 Gradle Wrapper 由几个文件组成 xff0c 这些文件在你的项目目录中 l gradl
  • ApplicationContextAware及InitializingBean及bean注入执行顺序

    1 spring先检查注解注入的 bean xff0c 并将它们实例化 2 然后 spring初始化 bean 的顺序是按照 xml 中配置的顺序依次执行构造 3 如果某个类实现了 ApplicationContextAware接口 xff
  • git 报错: http request failed

    解决方案 xff1a 卸载Centos自带的git1 7 1 xff0c 安装版本git2 2 1 1 查看当前git版本 git version git version 1 7 1 2 卸载git1 7 1 yum remove git
  • 关于sh时命令不识别无法正常执行.sh文件

    为什么不能执行呢 xff0c 因为我们的命令很多时候是以bash的规范的 xff0c 所以如果shell不是bash类型 xff0c 很容易出现命令不识别这类问题 先检查shell类型 echo SHELL 这是正常的 xff0c 是bas
  • Powershell美化(oh-my-posh)

    效果展示 xff1a 1 通过cmd下载oh my posh或者直接微软商店搜索下载 winget install oh my posh 2 打开powershell 7或者powershell xff08 推荐以下载的最高版本为主 xff
  • O2OA中如何使用PostgreSQL + Citus 实现分布式数据库实现方案?

    虽然 O2OA 数据表高效的表结构以及索引的设计已经极大程度地保障了数据存取操作的性能 xff0c 但是随着使用时间从增长 xff0c 数据表存放的数据量也会急剧增长 此时 xff0c 仍然需要有合适的方案来解决数据量产生的系统性能瓶颈 本
  • POI Excel导出样式设置

    HSSFSheet sheet 61 workbook createSheet 34 sheetName 34 创建sheet sheet setVerticallyCenter true 下面样式可作为导出左右分栏的表格模板 sheet
  • SQL强化:将相同的或连续的时间段合并

    问题描述 xff1a 有一张签到表 xff0c 需要将连续或相同的时间段合并 xff0c 即把多条记录查询合并成一条连续的时间段记录 数据表如下 xff1a DROP TABLE IF EXISTS 96 timesheets 96 CRE
  • Mysql实现数据的不重复写入(insert if not exists)以及新问题:ID自增不连续的解答

    最近做数据处理时候 xff0c 遇到一个问题 用一个id自增主键时候 xff0c 数据表中会插入大量重复数据 xff08 除ID不同 xff09 这虽然对最终数据处理结果没有影响 xff0c 但是有1个问题 xff0c 如果数据量超大 xf
  • 2014年秋找工作经历

    博主学渣一枚 xff0c 读研期间做过几个不上档次的管理系统 xff0c 学历不太好 xff0c 基础知识不太牢固 xff0c 所以校招找工作难免辛酸 记下这个过程 xff0c 以便日后回顾来时的路 9月 xff0c 酱油了 xff0c 只
  • 服务器端获取webservice客户端IP地址

    一 基于xfire发布的webservice获取客户端ip的方法 public String getClientIp String ip 61 34 34 try HttpServletRequest request 61 XFireSer
  • @Autowired,@Qualifier @Required @Resource @Component,@Service,@Controller,@Repository @PostConstruct

    1 64 Autowired 注解 xff1a 首先在使用时候需要引入配置 xff1a lt 该 BeanPostProcessor 将自动起作用 xff0c 对标注 64 Autowired 的 Bean 进行自动注入 gt lt bea
  • HTML中select标签单选多选详解

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