`

非Select标签的选择框

阅读更多
用select做选择框与input放在一起总不太和谐.换了吧.

Code
var Report={};
Report.getOffset = function getOffset(e){
   var t = e.offsetTop;
   var l = e.offsetLeft;
   var w = e.offsetWidth;
   var h = e.offsetHeight-2;
   while(e=e.offsetParent){
      t += e.offsetTop;
      l += e.offsetLeft;
   }
   return{
      top : t,left : l,width : w,    height : h
   }
}
Report.createSelect = function createSelect(obj,filterArray){
   var offset= this.getOffset(obj);//在firefox下必须加this,不然报找不到函数。
   var size = 0;
$.each(filterArray, function(){
   size++;
}
);
var oldDiv = $("#div_" + obj.id);
if(oldDiv.length){
   if(oldDiv.css("display")=='none'){
      oldDiv.css("display","block");
   }
   else{
      oldDiv.css("display","none");
   }
}
else{
   var cDiv = $("<div></div>");
   cDiv.attr("id","div_" + obj.id);
   cDiv.css("position","absolute");
   cDiv.css("width",(offset.width) + "px");
   cDiv.css("height",size *20 + "px");
   cDiv.css("top",(offset.top+offset.height+2) + "px");
   cDiv.css("left",offset.left + "px");
   cDiv.css("background","#f7f7f7");
   cDiv.css("border","1px solid silver");
   $(document.body).append(cDiv);
  
   var uUl = $("<ul></ul>");
   uUl.attr("id","ul_" + obj.id);
   uUl.css("listStyle","none");
   uUl.css("margin","0");
   uUl.css("padding","0");
   uUl.css("fontSize","12px");
   cDiv.append(uUl);
  
$.each(filterArray, function(key, value){
   var lLi=$("<li></li>");
   lLi.attr("id","li_" + key);
   lLi.attr("value",key);
   lLi.css("textIndent","4px");
   lLi.css("height","20px");
   lLi.css("lineHeight","20px");
   lLi.text(value);
   uUl.append(lLi);
}
);
var liObj=$("li",uUl);
$.each(liObj, function(i,eachLi){
   eachLi.onmouseover=function(){
      this.style.background="#cccccc";
      this.style.color="red";
   }
   eachLi.onmouseout=function(){
      this.style.background="white";
      this.style.color="black";
   }
   eachLi.onclick=function(){
      obj.value= this.value;
      cDiv.css("display","none");
   }
});
}}


test.html

Code
<input type="text" onclick="Report.createSelect(this,{'2':'男','3':'女'})"
readonly="readonly">
</input>
效果:

分享到:
评论

相关推荐

    select标签边框的颜色select标签边框的颜色

    以上就是关于“select标签边框的颜色”这一主题的主要知识点。理解并熟练运用这些技巧,可以使你的网页设计更加个性化和专业。在实践中,记得不断测试和调试,以确保在各种环境下的表现都符合预期。

    select 增加搜索框

    在网页设计和开发中,`select`元素是HTML中用于创建下拉列表的标签,它提供了用户可以从一组预定义选项中进行选择的功能。然而,原始的`select`元素通常只提供基本的交互功能,比如点击打开下拉列表,然后选择一个...

    jsp中htmlselect标签的用法

    `jsp`中的`html:select`标签主要用于创建HTML表单中的下拉选择列表。这个标签在Struts框架中尤其常见,因为它与ActionForm对象的属性紧密关联,方便数据的提交和回显。以下是对`html:select`标签的详细解释和使用...

    vue select选择框数据变化监听方法

    1、使用v-model在select标签上进行数据双向绑定, 2、在data里边添加val:‘ ‘, 3、最后就是监听事件的写法,写在methods之外。 附加:(以下图片借鉴他人,非原创) 以上这篇vue select选择框数据变化监听方法...

    bootstrap-select下拉选择搜索框,可以多选和单选

    而Bootstrap Select是这个生态中的一个补充,专注于解决`&lt;select&gt;`标签的功能局限性。 使用Bootstrap Select的方法并不复杂,通常包括以下步骤: 1. **引入依赖**:首先,确保在页面中引入Bootstrap的CSS和...

    JS+CSS和图片美化select下拉列表选择框

    综上所述,通过结合JavaScript和CSS,我们可以对`select`下拉列表选择框进行深度美化,包括调整基本样式、添加自定义图片,甚至实现复杂的交互效果。在`select美化选择框.htm`这个示例文件中,我们可以看到一个完整...

    jQuery转换选择框为按钮的插件Select2Buttons.zip

    转换select选择框为标签式按钮 支持js回发调用 支持disabled选项 支持将多个select设置为一组 支持取消默认选中 示例代码: &lt;select name="simple-select"&gt; &lt;option&gt;One &lt;option&gt;Two &lt;option&gt;Three ...

    select复选框带全选

    在Bootstrap中,"select复选框"通常指的是一个下拉选择列表,其中包含多个可选的选项,用户可以通过勾选这些选项来做出选择。本篇文章将深入探讨如何在Bootstrap中实现带有全选功能的select复选框,以及相关的技术...

    jquery实现select带模糊搜索下拉选择框

    本教程将详细讲解如何使用 `jQuery` 实现一个具有模糊搜索功能的下拉选择框,以提升用户在交互时的体验。 首先,我们需要了解 `select` 元素在HTML中的基本用法。`&lt;select&gt;` 标签用于创建一个下拉列表,用户可以...

    CSS自定义select下拉选择框的样式(不用其他标签模拟)

    在网页设计中,`&lt;select&gt;`元素用于创建下拉选择框,它提供了用户从一系列预设选项中进行选择的功能。然而,浏览器默认的`&lt;select&gt;`样式通常不符合设计师的美观需求,因此,如何自定义select下拉选择框的样式成为了一...

    用JavaScript来美化HTML的select标签的下拉列表效果

    因此,使用JavaScript来增强select标签的外观,让它在不同的浏览器中都表现出一致且美观的效果,就成为了前端开发中一个常见的需求。 JavaScript在美化select标签的过程中主要扮演了以下几个角色: 1. 隐藏原始...

    定制html的select标签样式

    本文将详细介绍如何通过自定义CSS和JavaScript来改变`&lt;select&gt;`标签的样式,打造更加个性化的下拉选择框。 首先,我们需要了解`&lt;select&gt;`的基本结构和其选项`&lt;option&gt;`。`&lt;select&gt;`标签内包含一系列`&lt;option&gt;`标签...

    jsp select 带多选框

    在这个例子中,`&lt;select&gt;`标签的`name`属性定义了表单字段的名称,`multiple`属性使得用户可以多选,`size`属性定义了下拉框显示的选项数量。每个`&lt;option&gt;`标签代表一个可选的值,用户可以看到并选择。 在实际应用...

    select标签multiple属性的使用方法.zip

    总的来说,`&lt;select&gt;`标签的`multiple`属性是创建多选下拉列表的强大工具,它提供了简洁的用户界面,同时允许用户方便地选择多个选项。在实际应用中,结合CSS样式和JavaScript交互,可以打造出功能丰富的多选下拉...

    struts操作select标签实例

    在Struts中,`html:select`标签是用于创建HTML下拉列表的一个重要元素,特别适用于用户界面中需要选择单一或多个选项的场景。本文将深入探讨`html:select`标签的使用方法及其相关知识点。 首先,我们需要理解`...

    jquery select列表选择框选中美化效果源码

    本主题聚焦于“jquery select列表选择框选中美化效果源码”,这是一个关于利用jQuery来增强HTML `&lt;select&gt;` 元素外观和交互性的技术实践。 在标准HTML中,`&lt;select&gt;`元素用于创建下拉列表,但其样式和交互性往往...

    jquery select列表选择框选中美化效果.zip

    在Web设计中,表单组件的用户体验是至关重要的,特别是对于选择框(`&lt;select&gt;`)这种用户频繁交互的元素。传统的HTML `&lt;select&gt;` 下拉菜单在样式和交互上往往显得单调,不能满足现代网页的视觉和交互需求。 jQuery...

    分享带查询的select标签

    【标题】"分享带查询的select标签"涉及的是在网页开发中如何实现一个具有搜索功能的下拉选择框。在传统的HTML中,`&lt;select&gt;`标签用于创建一个下拉列表,但其默认功能并不支持用户输入关键词进行筛选。这篇博客(博文...

    struts2标签中select的三种写法

    在Struts2框架中,`select`标签是一个非常重要的组件,用于创建HTML的下拉选择框。它允许我们在页面上提供一组选项供用户选择。在本文中,我们将深入探讨Struts2中`select`标签的三种不同的使用方法,以及如何从...

    js select框美化插件设置多种风格select美化列表框

    在网页设计中,选择框(Select)是常见的一种交互元素,用于用户在预设的选项中进行选择。然而,原生的HTML `select` 标签样式通常较为简单,不符合现代网页界面美观的要求。为了解决这个问题,开发人员通常会使用...

Global site tag (gtag.js) - Google Analytics