自定义HTML中select控件
HTML中默认的select控件比较难看,大家可以参考,本文提供一种解决思路,当然也可以用CSS实现。
function selectInit(tid,isIn){
if(!$("#"+tid)[0]){return false;}
var dv=$("#"+tid).val(),dt=$("#"+tid+" option:eq(0)").html(),vs=[],ts=[],na=$("#"+tid).attr("name"),mHtml="",curDx=0,
w=$("#"+tid).width(),h=$("#"+tid).height()-2;
na=na?na:tid;
$("#"+tid+" option").each(function(dx){
var cv=$(this).val(),ct=$(this).html();
mHtml+='<div> '+ct+'</div>';
vs.push(cv);
ts.push(ct);
if($(this).attr("selected")=="selected"||cv===dv){
dt=$(this).html();
curDx=dx;
}
});
var iHTML='<span style="display:inline-block;width:'+w+'px;height:'+h+'px;border:1px solid #7f9db9;padding:1px">'+
'<input type="hidden" id="'+tid+'" name="'+na+'" value="'+dv+'"><input id="'+tid+'_show" value="'+dt+'" '+(isIn?'readOnly="readOnly" style="cursor:default;':' style="')+'border:none;width:'+(w-16)+'px;height:'+(h-3)+'px;line-height:'+(h-3)+'px;float:left;padding:2px 1px 1px 1px;">'+
'<span onselectstart="return false" style="display:block;cursor:pointer;text-align:center;font-size:8px;width:'+12+'px;height:'+(h-2)+'px;border:1px solid #b8cbf6;line-height:'+(h-2)+'px;background:#b3d1fc;float:left;color:#4d6185;">V</span>'+
'</span>';
$("#"+tid).replaceWith(iHTML);
$("body").append('<div style="position:absolute;left:0px;top:0px;display:none;width:'+(w+2)+'px;height:'+(ts.length*18)+'px;background:#fff;border:1px solid #7f9db9;" id="'+tid+'_select">'+mHtml+'</div>');
$("#"+tid+"_select div").css({'font-size':'13px','cursor':'pointer','line-height':'17px','text-align':'left','width':'100%','height':'17px','padding-top':'1px'});
$("#"+tid+"_select div").hover(function(){
$("#"+tid+"_select div").css({'background-color':'#ffffff'});
$(this).css({'background-color':'#2f6ac6'});
},function(){
$(this).css({'background-color':'#ffffff'});
});
$("#"+tid+"_select div").click(function(){
var cdx=$("#"+tid+"_select div").index(this);
curDx=cdx;
$("#"+tid).val(vs[cdx]);
$("#"+tid+"_show").val(ts[cdx]);
$("#"+tid+"_select").hide();
});
$("#"+tid+"_show").parent().click(function(){
//p对象为工具对象,引入地址:http://www.h928.com/js/jTools-min-encode.js
var xy=p.getPos(this),cx=parseInt(xy['x']),cy=parseInt(xy['y'])+h+4;
if(navigator.userAgent.indexOf("MSIE 7.0")>0){
cx-=2;
cy-=2;
}
$("#"+tid+"_select").show();
$("#"+tid+"_select").css({'left':cx+"px",'top':cy+"px"});
$("#"+tid+"_select div:eq("+curDx+")").css({'background-color':'#2f6ac6'});
return false;
});
$(document).click(function(){
$("#"+tid+"_select").hide();
});
$("#"+tid+"_select").click(function(){
return false;
});
}
调用方式:
$(function(){
selectInit("selectID",true);//提供SELECT控件的ID值
}
自定义HTML中select控件的更多相关文章
- 如何自定义iOS中的控件
本文译自 How to build a custom control in iOS .大家要是有什么问题,可以直接在 twitter 上联系原作者,当然也可以在最后的评论中回复我. 在开发过程中,有时 ...
- [iOS]技巧集锦:UITableView自定义Cell中的控件无法完全对齐Cell的左边界和右边界
这是个很诡异的问题,由于一些特殊需求,我的TableView的Cell的背景色是透明,其中的控件会有背景色,第一个控件和最后一个控件我都用IB自动设了约束,对齐Cell的左边界和右边界,但是自动约束很 ...
- Android线程中设置控件
在Android中经常出现多线程中设置控件的值报错的情况,今天教大家封装一个简单的类避免这样的问题,同样也调用实现也非常的方便. 自定义类: /** * Created by wade on 2016 ...
- .net获取select控件中的文本内容
.net获取select控件中的文本内容 2009-11-28 21:19小V古 | 分类:C#/.NET | 浏览1374次 <select id="SecType" st ...
- WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探
原文:WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探 最近因为项目需要,开始学习如何使用WPF开发桌面程序.使用WPF一段时间之后,感 ...
- 027. asp.net中数据绑定控件之 GridView控件
GridView控件支持下面的功能: 绑定至数据源控件, 如SqlDataSource 内置排序功能 内置更新和删除功能 内置分页功能 内置行选择功能 可以编程方式访问GridView对象模型以动态设 ...
- Yii 控制dropdownlist / select 控件的宽度和 option 的宽度
默认情况下, option的宽度会由options中最宽的元素决定,并且同时决定着select控件的宽度 在Yii中,如果需要自定义select控件的宽度,可以用 htmlOptions定义,如下: ...
- wxPython中基本控件学习
wxPython工具包提供了多种不同的窗口部件,包括了本章所提到的基本控件.我们涉及静态文本.可编辑的文本.按钮.微调.滑块.复选框.单选按钮.选择器.列表框.组合框和标尺.对于每种窗口部件,我们将提 ...
- SELECT控件操作的JS代码示例
SELECT控件操作的JS代码示例 1 检测是否有选中 if(objSelect.selectedIndex > -1) { //说明选中 } else { //说明没有选中 } 2.动态创建s ...
随机推荐
- 基于MNIST数据的卷积神经网络CNN
基于tensorflow使用CNN识别MNIST 参数数量:第一个卷积层5x5x1x32=800个参数,第二个卷积层5x5x32x64=51200个参数,第三个全连接层7x7x64x1024=3211 ...
- [转]java中的字符串相关知识整理
字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...
- Swift下调用Touch ID实现指纹识别
iOS开发交流群:484884085 欢迎大家增加. 例如以下代码是实现调用5S以上设备指纹识别的代码,依照官网给出的代码,会出现识别成功后非常久才运行成功后调用的代码,逛了非常久的.才知道要将其放入 ...
- ZT:150条毒鸡汤
1.照照镜子吧,还要什么段子? 2.多年过去,再回忆高考,其实本质上没有考到好与坏的说法,重要的是年轻人在一起,做份试题,然后决定去哪座城市做代购. 3.真正努力过的人,就会明白天赋的重要性. 4.转 ...
- 通过Java反射做实体查询
我们在使用hibernate的时候,查询的时候都会和实体中的一些字段相结合去查询,当然字段少了,还算是比较简单,当字段多了,就不那么容易了,所以就自己写了个方法,根据实体中的字段信息去查询,废话不多说 ...
- 解决Sql server分页时第二页以上查询结果不正常的问题
有100个产品,其中最高价格的为200元,而200元的产品共有40个, 现在好了,对每页30进行分页: declare @PageSize int--30 declare @Page int decl ...
- Expression Tree 学习笔记(一)
大家可能都知道Expression Tree是.NET 3.5引入的新增功能.不少朋友们已经听说过这一特性,但还没来得及了解.看看博客园里的老赵等诸多牛人,将Expression Tree玩得眼花缭乱 ...
- docker compose环境搭建
概述 Docker Compose提供一个简单的基于YAML配置语言.用于描写叙述和组装多容器的分布式应用. 使用docker定义和执行复杂的应用.使用compose,能够在一个文件中,定义多容器的应 ...
- Matlab依据样本随机数求概率曲线
相关Matlab函数:hist, bar, cdfplot, ksdensity (1) hist函数 n = hist(Y, x) 假设x是一个向量,返回x的长度个以x为中心的,Y的分布情况. 比 ...
- JavaScript提高:001:ASP.NET使用easy UI
jQuery EasyUI是一组基于jQuery的UI插件集合.能够简洁的开发出功能多内容丰富的界面,而不须要开发人员自己费力的写那些复杂的js代码.本文简介在ASP.NET开发中引用这些js文件和样 ...