html中select只读显示
因为Select下拉框只支持disabled属性,不支持readOnly属性,而在提交时,disabled的控件,又是不提交值的。现提供以下几种解决方案:
1、在html中使用以下代码,在select外层加1个span,通过js控制。这种设置的不足之处是IE浏览器兼容,fireFox及其他不兼容..
- <span onmousemove="this.setCapture();"onmouseout="this.releaseCapture();" onfocus="this.blur();">
- <select id="select1">
- <option value="0">0</option>
- <option value="1">1</option>
- </select>
- </span>
2、使用js文件,这种方法的不足之处和第一种一样。
- <select name="select">
- <option>aaa</option>
- </select>
- <script type="text/javascript">
- SetReadOnly(document.getElementById("select"));
- function SetReadOnly(obj){
- if(obj){
- obj.onbeforeactivate = function(){return false;};
- obj.onfocus = function(){obj.blur();};
- obj.onmouseover = function(){obj.setCapture();};
- obj.onmouseout = function(){obj.releaseCapture();};
- }
- }
- </script>
3、使用jquery方式解决。
- $(function(){ $("select").attr("disabled", "disabled");
- //如果和jquery1.6以上版本,可以使用以下语句:
- $("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。
补救办法:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
- <link href="Main.css" type="text/css" rel="stylesheet" />
- <title>Test</title>
- </head>
- <body>
- <div>
- <select size="5" disabled="disabled">
- <option value="C1">Black</option>
- <option value="C2">DarkCyan</option>
- <option value="C3" selected="selected" class="selected">DarkRed</option>
- <option value="C4">DarkMagenta</option>
- </select>
- <select size="5">
- <option value="C1">Black</option>
- <option value="C2">DarkCyan</option>
- <option value="C3" selected="selected">DarkRed</option>
- <option value="C4">DarkMagenta</option>
- </select>
- <input type="text" />
- </div>
- </body>
- </html>
其中 Main.css 如下所示:
- option.selected {
- color: White;
- Cyan;
- }
其他改变样式,使用CSS改变文字颜色
- 用 CSS 定义文字颜色如下代码所示:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
- <style type="text/css"> select { color:red } </style>
- <title>Test</title>
- </head>
- <body>
- <div>
- <select size="5" disabled="disabled">
- <option value="C1">Black</option>
- <option value="C2">DarkCyan</option>
- <option value="C3" selected="selected">DarkRed</option>
- <option value="C4">DarkMagenta</option>
- </select>
- <select size="5">
- <option value="C1">Black</option>
- <option value="C2">DarkCyan</option>
- <option value="C3" selected="selected">DarkRed</option>
- <option value="C4">DarkMagenta</option>
- </select>
- <input type="text" />
- </div>
- </body>
- </html>
5、使用隐藏域,在select下面设置隐藏域,显示的时候disabled,提交的时候提交隐藏域中的值。
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <body>
- <select id="selList" onchange="setVal()">
- <option value="1" >1</option>
- <option value="2" selected="selected">2</option>
- </select>
- <input id="hdSelList" type="text" />
- <script type="text/javascript">
- //本demo是为了清晰地表达, 你在select中加入 disabled="disabled",
- //将input中的type改为hidden即为你要的效果了.
- //提交时, 你不要取selList的值, 取hdSelList的值就好了.
- setVal(); //1.在初始加载时就将两者的值设置为一致;
- //2. 为了防止代码以后会有改动---有时不需要disabled, 故有上面的onchange="setVal()"
- function setVal() {
- document.getElementById('hdSelList').value = document.getElementById('selList').value;
- }
- </script>
- </body>
- </html>
还有下面的一种情况,页面数据太多,处理时间较长
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <script src="../ec/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
- <script type="text/javascript" >
- function commit() {
- $DisSelects = $("select[disabled='disabled']");//获取所有被禁用的select
- $DisSelects.attr("disabled", false); //处理之前, 全部打开
- $("#form1").submit(); //提交
- $DisSelects.attr("disabled", true); //处理完成, 全部禁用
- }
- </script>
- </head>
- <body>
- <form id="form1" action="HTMLPage.htm">
- <input type="button" value="submit" onclick="commit()" />
- <select id="Select1" disabled="disabled" >
- <option value="0" >0</option>
- <option value="1" selected="selected">1</option>
- </select>
- <select id="Select2" disabled="disabled" >
- <option value="1" >1</option>
- <option value="2" selected="selected">2</option>
- </select>
- <select id="Select3" disabled="disabled" >
- <option value="2" >2</option>
- <option value="3" selected="selected">3</option>
- </select>
- <select id="Select4" disabled="disabled" >
- <option value="3" >3</option>
- <option value="4" selected="selected">4</option>
- </select>
- </form>
- </body>
- </html>
html中select只读显示的更多相关文章
- 只显示前几条数据的sql语句写法 七种数据库中Select Top的使用方法
七种数据库中Select Top的使用方法 1. Oracle数据库 SELECT * FROM TABLENAME WHERE ROWNUM <= N 2. Infomix数据库 SELECT ...
- 七种数据库中Select Top的使用方法 (只显示数据库的几条记录)
七种数据库中Select Top的使用方法 1. Oracle数据库 SELECT * FROM TABLENAME WHERE ROWNUM <= N 2. Infomix数据库 SELE ...
- SQL Server中SELECT会真的阻塞SELECT吗?
在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.T ...
- 项目实例——多表关联查询判断A的字段是否在B中,在显示该字段值,不在显示空;B的字段是否在C中,在显示该字段值,不在显示空。
1.需求: (1)三张表A.B.C 三个表id相同,如果A表中的name在B表中的bname中显示aname值,否则显示空:如果C表中的addr在B表中的tel显示addr,否则显示空 2.实现方式 ...
- 查询语句中select from where group by having order by的执行顺序
查询语句中select from where group by having order by的执行顺序 1.查询中用到的关键词主要包含六个,并且他们的顺序依次为 select--from--w ...
- mysql进阶(四)mysql中select
mysql中select * for update 注: FOR UPDATE 仅适用于InnoDB,且必须在事务区块(BEGIN/COMMIT)中才能生效. 作用 锁定该语句所选择到的对象.防止在 ...
- springboot中使用mybatis显示执行sql
springboot 中使用mybatis显示执行sql的配置,在properties中添加如下 logging.你的包名=debug 2018-11-27 16:35:43.044 [DubboSe ...
- SQLite中SELECT基本形式
SQLite中SELECT基本形式 每个数据库通常都包含多个表,而每个表又包含多条数据.要获取数据库中的数据,就需要SQL语言提供的查询语句SELECT.本章将讲解和SELECT语句相关的内容,其中包 ...
- QML与C++交互:在qml中使用QSqlQueryModel显示数据库数据
QML与C++交互:在qml中使用QSqlQueryModel显示数据库数据 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 參考链接: http:// ...
随机推荐
- Something about "for"
For语句引导了一个循环语句,格式for(::),例for(int i=0;i<100;i++).类似于if()括号的作用for()括号如同if()括号一样也是一个boolean型.int i= ...
- poj1222 EXTENDED LIGHTS OUT 高斯消元||枚举
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8481 Accepted: 5479 Description In an ...
- virtualtree 的使用(Delphi)
VirtualTreeview的强大,毋庸置疑,不过,你能给演示演示,也不错,就是刚下来,只有一个可执行程序,感觉像病毒. 最近比较忙,没有上网,现在把我研究的结果和大家通报下,方便新手学习,避免走弯 ...
- 【转】详解C#中的反射
原帖链接点这里:详解C#中的反射 反射(Reflection) 2008年01月02日 星期三 11:21 两个现实中的例子: 1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内 ...
- Jenkins基础 - 常用配置操作
1.修改jenkins的根目录,默认地在C:\Users\用户名\.jenkins下(win7) 或C:\Documents and Settings\用户名\.jenkins(xp) 修改步骤: 增 ...
- Hadoop2.0(HDFS2)以及YARN设计的亮点
YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResouceManager负责对各个Node ...
- 实战Hadoop中遇到的几个类、接口说明
1. Configuration :public 类型接口,这个接口包含的多数方法是进行与数据属性<key,value>有关的操作. 几个方法: 1)addProperty(String ...
- mac 快捷键大全
1.control+space 可以使用 spotlight搜索,用于快速找到所需要的文件 2.我尝试使用android studio 提示的快捷键来进行写代码,发现自己按照它的提示操作没有成功,原因 ...
- 【SQL】区分新来顾客和再访顾客
-- 赋值 客户来访记录 SELECT m.* FROM (SELECT x.*, CASE WHEN x.ts > (SELECT MIN(a.ts) FROM USER.ps_afterre ...
- Java 动态代理
被代理的接口特点: 1. 不能有重复的接口,以避免动态代理类代码生成时的编译错误. 2. 这些接口对于类装载器必须可见,否则类装载器将无法链接它们,将会导致类定义失败. 3. 需被代理的所有非 pub ...