因为Select下拉框只支持disabled属性,不支持readOnly属性,而在提交时,disabled的控件,又是不提交值的。现提供以下几种解决方案:

1、在html中使用以下代码,在select外层加1个span,通过js控制。这种设置的不足之处是IE浏览器兼容,fireFox及其他不兼容..

  1. <span onmousemove="this.setCapture();"onmouseout="this.releaseCapture();" onfocus="this.blur();">
  2. <select id="select1">
  3. <option value="0">0</option>
  4. <option value="1">1</option>
  5. </select>
  6. </span>

2、使用js文件,这种方法的不足之处和第一种一样。

  1. <select name="select">
  2. <option>aaa</option>
  3. </select>
  4. <script type="text/javascript">
  5. SetReadOnly(document.getElementById("select"));
  6. function SetReadOnly(obj){
  7. if(obj){
  8. obj.onbeforeactivate = function(){return false;};
  9. obj.onfocus = function(){obj.blur();};
  10. obj.onmouseover = function(){obj.setCapture();};
  11. obj.onmouseout = function(){obj.releaseCapture();};
  12. }
  13. }
  14. </script>

3、使用jquery方式解决。

  1. $(function(){ $("select").attr("disabled", "disabled");
  2. //如果和jquery1.6以上版本,可以使用以下语句:
  3. $("select").prop("disabled", true);});

4、先将select的属性设置为

disabled="disabled"

然后在提交表单的时候使用disabled置为空。

Microsoft IE 5.5、IE 6、IE7、IE 10、Mozilla Firefox、Apple Safari 和 Opera 等浏览器对 HTML select 元素的 disabled 属性支持都很不错。而 IE 8、IE 9 和 Chrome 都有 bug,不能很好支持。不知道有没有办法在 HTML 源代码补救这一 bug。

补救办法:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  5. <link href="Main.css" type="text/css" rel="stylesheet" />
  6. <title>Test</title>
  7. </head>
  8. <body>
  9. <div>
  10. <select size="5" disabled="disabled">
  11. <option value="C1">Black</option>
  12. <option value="C2">DarkCyan</option>
  13. <option value="C3" selected="selected" class="selected">DarkRed</option>
  14. <option value="C4">DarkMagenta</option>
  15. </select>
  16. <select size="5">
  17. <option value="C1">Black</option>
  18. <option value="C2">DarkCyan</option>
  19. <option value="C3" selected="selected">DarkRed</option>
  20. <option value="C4">DarkMagenta</option>
  21. </select>
  22. <input type="text" />
  23. </div>
  24. </body>
  25. </html>

其中 Main.css 如下所示:

  1. option.selected {
  2. color: White;
  3. Cyan;
  4. }

其他改变样式,使用CSS改变文字颜色

  1. 用 CSS 定义文字颜色如下代码所示:
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  6. <style type="text/css"> select { color:red  } </style>
  7. <title>Test</title>
  8. </head>
  9. <body>
  10. <div>
  11. <select size="5" disabled="disabled">
  12. <option value="C1">Black</option>
  13. <option value="C2">DarkCyan</option>
  14. <option value="C3" selected="selected">DarkRed</option>
  15. <option value="C4">DarkMagenta</option>
  16. </select>
  17. <select size="5">
  18. <option value="C1">Black</option>
  19. <option value="C2">DarkCyan</option>
  20. <option value="C3" selected="selected">DarkRed</option>
  21. <option value="C4">DarkMagenta</option>
  22. </select>
  23. <input type="text" />
  24. </div>
  25. </body>
  26. </html>

5、使用隐藏域,在select下面设置隐藏域,显示的时候disabled,提交的时候提交隐藏域中的值。

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <body>
  4. <select id="selList" onchange="setVal()">
  5. <option value="1" >1</option>
  6. <option value="2" selected="selected">2</option>
  7. </select>
  8. <input id="hdSelList" type="text" />
  9. <script type="text/javascript">
  10. //本demo是为了清晰地表达, 你在select中加入 disabled="disabled",
  11. //将input中的type改为hidden即为你要的效果了.
  12. //提交时, 你不要取selList的值, 取hdSelList的值就好了.
  13. setVal();  //1.在初始加载时就将两者的值设置为一致;
  14. //2. 为了防止代码以后会有改动---有时不需要disabled, 故有上面的onchange="setVal()"
  15. function setVal() {
  16. document.getElementById('hdSelList').value = document.getElementById('selList').value;
  17. }
  18. </script>
  19. </body>
  20. </html>

还有下面的一种情况,页面数据太多,处理时间较长

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <script src="../ec/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
  5. <script type="text/javascript" >
  6. function commit() {
  7. $DisSelects = $("select[disabled='disabled']");//获取所有被禁用的select
  8. $DisSelects.attr("disabled", false); //处理之前, 全部打开
  9. $("#form1").submit();                //提交
  10. $DisSelects.attr("disabled", true);  //处理完成, 全部禁用
  11. }
  12. </script>
  13. </head>
  14. <body>
  15. <form id="form1" action="HTMLPage.htm">
  16. <input type="button" value="submit" onclick="commit()" />
  17. <select id="Select1" disabled="disabled" >
  18. <option value="0" >0</option>
  19. <option value="1" selected="selected">1</option>
  20. </select>
  21. <select id="Select2" disabled="disabled" >
  22. <option value="1" >1</option>
  23. <option value="2" selected="selected">2</option>
  24. </select>
  25. <select id="Select3" disabled="disabled" >
  26. <option value="2" >2</option>
  27. <option value="3" selected="selected">3</option>
  28. </select>
  29. <select id="Select4"  disabled="disabled" >
  30. <option value="3" >3</option>
  31. <option value="4" selected="selected">4</option>
  32. </select>
  33. </form>
  34. </body>
  35. </html>

html中select只读显示的更多相关文章

  1. 只显示前几条数据的sql语句写法 七种数据库中Select Top的使用方法

    七种数据库中Select Top的使用方法 1. Oracle数据库 SELECT * FROM TABLENAME WHERE ROWNUM <= N 2. Infomix数据库 SELECT ...

  2. 七种数据库中Select Top的使用方法 (只显示数据库的几条记录)

    七种数据库中Select Top的使用方法 1. Oracle数据库  SELECT * FROM TABLENAME WHERE ROWNUM <= N 2. Infomix数据库  SELE ...

  3. SQL Server中SELECT会真的阻塞SELECT吗?

    在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.T ...

  4. 项目实例——多表关联查询判断A的字段是否在B中,在显示该字段值,不在显示空;B的字段是否在C中,在显示该字段值,不在显示空。

    1.需求: (1)三张表A.B.C  三个表id相同,如果A表中的name在B表中的bname中显示aname值,否则显示空:如果C表中的addr在B表中的tel显示addr,否则显示空 2.实现方式 ...

  5. 查询语句中select from where group by having order by的执行顺序

    查询语句中select from where group by having order by的执行顺序   1.查询中用到的关键词主要包含六个,并且他们的顺序依次为  select--from--w ...

  6. mysql进阶(四)mysql中select

    mysql中select * for update 注:  FOR UPDATE 仅适用于InnoDB,且必须在事务区块(BEGIN/COMMIT)中才能生效. 作用 锁定该语句所选择到的对象.防止在 ...

  7. springboot中使用mybatis显示执行sql

    springboot 中使用mybatis显示执行sql的配置,在properties中添加如下 logging.你的包名=debug 2018-11-27 16:35:43.044 [DubboSe ...

  8. SQLite中SELECT基本形式

    SQLite中SELECT基本形式 每个数据库通常都包含多个表,而每个表又包含多条数据.要获取数据库中的数据,就需要SQL语言提供的查询语句SELECT.本章将讲解和SELECT语句相关的内容,其中包 ...

  9. QML与C++交互:在qml中使用QSqlQueryModel显示数据库数据

    QML与C++交互:在qml中使用QSqlQueryModel显示数据库数据 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 參考链接: http:// ...

随机推荐

  1. 键盘按钮keyCode大全,keyCode列表对照表

    目录 [显示] 1js获取键盘按键对应的keyCode 2字母和数字键的键码值 3数字键盘上的键的键码值和功能键键码值 4控制键键码值 js获取键盘按键对应的keyCode <!doctype ...

  2. Android 横屏切换竖屏Activity的生命周期(转)

    曾经遇到过一个面试题,让你写出横屏切换竖屏Activity的生命周期.现在给大家分析一下他切换时具体的生命周期是怎么样的:  1.新建一个Activity,并把各个生命周期打印出来  2.运行Acti ...

  3. java synchronized修饰普通方法,修饰静态方法,修饰代码块,修饰线程run方法 比较

    synchronized用于多线程设计,有了synchronized关键字,多线程程序的运行结果将变得可以控制.synchronized关键字用于保护共享数据. synchronized实现同步的机制 ...

  4. 2014-2015 ACM-ICPC, NEERC, Moscow Subregional Contest E. Equal Digits

    E. Equal Digits time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  5. [ JS 进阶 ] test, exec, match, replace

    https://segmentfault.com/a/1190000003497780 对了,这篇文章可能会涉及到正则表达式相关知识,所以推荐没有正则基础的去看看这篇入门文章:正则表达式30分钟入门教 ...

  6. HDU 2222 & ac自动机模板

    题意: 求n个模板串在匹配串中出现了几个. SOL: 反正就是模板啦...似乎比KMP都简单----这么说似乎有点不道德...毕竟先看的KMP而他们并没有什么不同... 貌似自己的理解和他们画的图还是 ...

  7. 洛谷 P1305 新二叉树 Label:字符串的输出总是有惊喜

    题目描述 输入一串完全二叉树,用遍历前序打出. 输入输出格式 输入格式: 第一行为二叉树的节点数n. 后面n行,每一个字母为节点,后两个字母分别为其左右儿子. 空节点用*表示 输出格式: 前序排列的完 ...

  8. 转:jQuery插件开发精品教程,让你的jQuery提升一个台阶

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  9. win8.1上wamp环境中利用apache自带ab压力测试工具使用超简单讲解

    2015.10.4apache自带ab压力测试工具使用:本地环境:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一 ...

  10. 基于MINA构建简单高性能的NIO应用

    mina是非常好的C/S架构的java服务器,这里转了一篇关于它的使用感受. 前言MINA是Trustin Lee最新制作的Java通讯框架.通讯框架的主要作用是封装底层IO操作,提供高级的操作API ...