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标签单选多选详解 的相关文章

  • 如何在使用“document.createElement()”方法创建单元格后立即在 JavaScript 中设置单元格宽度?

    我已经使用 document createElement td 方法在 html 页面中为动态表格创建了单元格 现在希望用一些不同的值设置每个单元格的宽度 尝试过 cell width width 但它不起作用 我怎样才能实现它 Use s
  • 从 Google 电子表格中的列填充 HTML 下拉菜单

    我是 gs 的新手 所以这应该不难 我有一个 Google 电子表格 其中一列中有值 假设 A 列 我使用 gs 创建了一个自定义菜单 用户将在其中选择一个选项 单击其中一个选项 新组件 将出现一个弹出窗口 其中包含一个下拉菜单 用户应从其
  • 如何使用 facebook 用户登录我的网站?

    我想知道 facebook 如何让用户登录我们的网站 我的意思是用户需要注册到我的网站才能发表评论 我如何通过我的 php 代码检查它是否是登录用户 我听说你只能用javascript检查它是否是登录用户 感谢您的任何解释 您可以使用脸书
  • 删除已从另一个下拉菜单中选择的下拉值

    我在网上搜索了一段时间 但仍然找不到答案 我的网站上有三个下拉菜单 我使用它们来接受用户首选项 以便用户可以控制结果的输出 所以我想知道如果在其中一个下拉列表中选择了该值 是否可以从其他两个下拉列表中取出该值 例如 如果用户在第一个电影中选
  • 当页面加载图像时,它是只加载一次,还是每次在标记中找到它时加载?

    当页面加载图像时 它是只加载一次 还是每次在标记中找到它时加载 那么 jquery 呢 附加一个 img 会导致它再次重新加载吗 我问这个问题是因为我有高分辨率图像 但需要在标记的许多情况下使用它 img src hello jpg img
  • 如何使用 Jsoup 解析此 HTML

    我正在尝试提取 了解你的拖拉机 和 壳牌石油公司 1955 请记住 这只是整个代码的一小段 并且有多个 H2 H3 标签 我想获取所有 H2 和 H3 标签的数据 HTML 如下 https i stack imgur com Pif3B
  • 替换javascript中字符串中的多个字符

    我得到了这段不错的代码 但我不知道为什么不起作用 出于兼容性目的 它应该获取文本输入的值并用 HTML 代码替换每个给定的国家字符 但是 当我单击按钮时 该函数返回字符串而不进行任何更改 任何想法 jsfiddle http jsfiddl
  • 如何在 Popup div 中加载 iframe 内容?

    如何在 Popup div 中加载 iframe 内容 单击每个链接时将打开弹出 div 从每个链接 页面 url 将加载到弹出 div 内的 iframe href document ready function openpop clic
  • 查看oracle中重复行的所有数据

    我有一个有 6 列的表 id name type id code lat long 前三个是必需的 ID是私钥 按序列自动插入 我有一些重复的行 正如两者所定义的name and type id是平等的 但我想查看受骗者的所有数据 我可以很
  • 如何使用 Angular 1.5 中的组件为每个页面设置标题

    我最近开始使用 Angular 1 5 组件 我的应用程序中有多个页面 所以我决定创建一个
  • 如何将webview内容划分为多个页面

    我必须使用 Android 上的 PdfDocument 从 webView 创建 PDF https developer android com reference android graphics pdf PdfDocument htm
  • Internet Explorer 不渲染从 JQuery ajax 帖子返回的 html

    我有一个带有输入框的页面 其 onkeyup 根据输入的内容 搜索字段 触发 JQuery ajax 帖子 ajax 调用回发的 html 应该填充页面上的另一个 div 这是 jquery ajax 帖子 var o me results
  • HTML 元素:属性排序

    分析几个页面并注意到不同的方法 写作风格 我想知道 HTML 元素属性的顺序是否有效 浏览器性能 渲染 明显或不明显 客户端 服务器计算资源 任何事物 他们是我应该考虑的订购标准吗 我只能认为它会影响 JQuery 对第 n 个属性的选择
  • 如何使用 file:///F:/foldername 访问 ajax 中的本地文件夹?但它适用于 http://

    在这里 我使用以下代码使用 AJAX jQuery 动态创建文件名列表 window load function var fileExt csv document ready function ajax url file F foldern
  • 如何在 CSS 中选择纯 HTML 文本?

    你们有人知道如何在 CSS 中选择纯 HTML 文本吗 我有以下结构 div p class caption caption1 p div class tabs div class moving bg div p class text ta
  • 移动设备上的剩余悬停效果

    我一整天都在努力做这个JSFiddle http jsfiddle net gsamaras q2w4jjyt 4 也适用于手机 但我所有的尝试都没有效果 在桌面上 当用户将鼠标悬停在箭头上时 它会变成红色 在移动设备上 当用户触摸 为了单
  • 使用添加“title”属性换行符 到 JSX 元素

    我知道我可以在 HTML 中添加换行符title属性使用 10 但 React 避免了这一点 例如 这是一个 React 组件 其中包含一个标准的 未由 React 处理的组件title包含换行符的属性 并且可以在浏览器中看到效果 但是如果
  • 如何将多个画布元素放入一个画布元素中?

    我有多个由 JavaScript 创建的画布元素 我的问题是 如何将多个画布元素放入一个画布元素 干得好 JSfiddle http jsfiddle net Allendar UqxCY 它会抓取每个画布并将它们做成 PNG 的 访问缓冲
  • 如何使弹出窗口溢出:在溢出内可见:自动上下文

    我有一个 div 列表 如果超过父框 overflow x 应该滚动 并且在悬停时 我想看到一个弹出窗口 我的问题是 如果我将鼠标悬停在任何子 div 上 弹出窗口将被考虑用于溢出计算 但我只想让它在所有内容之上可见 而不是使其扩展滚动区域
  • html 表:thead 与 th

    它看起来像 根据示例这一页 http www w3 org TR html4 struct tables html无论如何 如果您使用THEAD 则不需要使用TH 真的吗 如果是这样 THEAD 与 TH 相比有何优点 缺点 The the

随机推荐

  • 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 表单数据提交给服务器