用js设置下拉框为只读的小技巧

在项目开发过程中我们时常会碰到要设置下拉框为只读(readonly),但是可惜的是select没有只读属性,所以需要在select外面包含一个span,通过js来改变。

下面这段html代码是在struts2的下拉标签中加入了span标签,在页面装载的时候就让下拉框变成不可读。


代码如下:

<body onload="init()">
<span id="id_select">
<s:select name="sjdwmc" list="sjdxdwList" listKey="dxbh" listValue="dwmc" headerKey="" headerValue=""></s:select>
</span>
</body>

如下是js代码,在init方法中调用selectReadOnly让下拉框变成只读。


代码如下:

/*根据页面上span的id设置select为只读/

function selectReadOnly(selectedId){
var obj = document.getElementById(selectedId);
obj.onmouseover = function(){
obj.setCapture();
}
obj.onmouseout = function(){
obj.releaseCapture();
}
obj.onfocus = function(){
obj.blur();
}
obj.onbeforeactivate = function(){
return false;
}
}

function init(){
selectReadOnly("id_select");
}

做到这里大功告成,试试效果吧!!!

(0)

相关推荐

  • JavaScript 文本域字体大小选择功能

    文本框字体选择 选择字体 for (i=9;i"+i+"pt字体\n");} function NYSfont() {if((fontslt.selectedIndex!=-1) && (fontslt.selectedIndex!=0)){readcontent.style.fontSize=fontslt.options[fontslt.selectedIndex].value;}} 这里的字体会跟着你的选择而变化 [Ctrl+A 全选 注:如需引入外部J

  • 利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域

    原理就是循环获取网页上的控件,然后设置disabled 属性为true. 代码如下: 复制代码 代码如下: <script type="text/javascript">    var nodeList = document.getElementsByTagName("input");    for (var i = 0; i < nodeList.length; i++) {        nodeList[i].disabled = true;

  • js控制input框只读实现示例

    复制代码 代码如下: <html> <head> <title> New Document </title> <meta name="Generator" content="EditPlus"> <meta name="Author" content=""> <meta name="Keywords" content="

  • JavaScript实现点击单选按钮改变输入框中文本域内容的方法

    本文实例讲述了JavaScript实现点击单选按钮改变输入框中文本域内容的方法.分享给大家供大家参考.具体如下: 这里实现点击单选按钮改变输入框中文本域内容的方法,是一个JavaScript 的简单应用,可以减少用户的输入,提升用户操作易用性,它类似一个TAB选项卡一样的功能,并可以完成后提交表单,值得学习. 运行效果截图如下: 具体代码如下: <html> <head> <title>JavaScript点击单选框改变输入框内容</title> </

  • JS控制文本域只读或可写属性的方法

    本文实例讲述了JS控制文本域只读或可写属性的方法.分享给大家供大家参考,具体如下: <input id="username" name="userneme" type="text" style="width:50px" size=106> 密码:<input id="userpwd" type="text" name="userpwd" size=1

  • js 禁用只读文本框获得焦点时的退格键

    有时候难免会要用到只读的文本框,可今天发现只读文本框有一个缺陷,当鼠标焦点在文本框里面的时候按回退键(backSpace), 会退回到前一个页面,这个问题就有点烦恼了,用户又不清楚可不可以输入,他如果看到文本框想去改里面的东西,按一下,有可能前面所有填写的数据就会丢失.故此写了个方法,供大伙有需要时放入<script></script>,保管你称心如意. 复制代码 代码如下: document.documentElement.onkeydown = function(evt){ v

  • JS替换文本域内的回车示例

    复制代码 代码如下: <html> <head> <title>无标题文档</title> <script type="text/javascript"> function aa() { s=form1.t1.value; s=s.replace(//n|/r/g,"");// 加上g是全局替换,不加只替换第一个 是回车.是换行符 form1.t1.value=s; } </script> &l

  • JS限制Textarea文本域字符个数的具体实现

    复制代码 代码如下: <head>       <title>JS限制Textarea文本域字符个数</title>       <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />       <SCRIPT LANGUAGE="JavaScript">       <!--//      

  • javascript实现文本域写入字符时限定字数

    复制代码 代码如下: <!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> <meta http-equiv=&qu

  • JS清空多文本框、文本域示例代码

    点击按钮用Javascript清空页面上所有的文本框|文本域,代码如下: 复制代码 代码如下: <script type="text/javascript"> <!-- function cls(){ var sum=0; var t = document.getElementsByTagName("INPUT"); for (var i=0; i <t.length;i++){ if (t[i].type=='text'){ ++sum;

  • 计算文本域剩佘长度的js代码

    JS 计算文本域剩余字数 function displaySpareNumber(_this,size) { var spareNumber=document.getElementById("spareNumber"); //汉字长度 var len=_this.value.replace(/[^\x00-\xff]/gi,'xx').length; var snum=parseInt(size)-len; spareNumber.value=snum; if(snum(size/2)

随机推荐