可编辑下拉框的2种实现方式_javascript技巧_

可编辑的下拉框一、

 <div style="position:relative;"> <select style="width:120px;" onchange="document.getElementById(‘input‘).value=this.value"> <option value="A类">A类</option> <option value="B类">B类</option> <option value="C类">C类</option> <option value="D类">D类</option> </select> <input id="input" name="input" style="position:absolute;width:99px;height:16px;left:1px;top:2px;border-bottom:0px;border-right:0px;border-left:0px;border-top:0px;"> </div> 

可编辑的下拉框二、

 <html>
 <head>
  <meta charset="utf-8">
  <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
  <meta name="ProgId" content="FrontPage.Editor.Document">
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <title>可编辑下拉框</title>
 </head>
 <body>
  <table style="border:2px outset;background-color:#d2e8FF" width="250" height="100" align="center">
   <tr>
    <td width="60%" height="30" align="center">
     <select name="fason">
      <option value="可编辑下拉框">可编辑下拉框</option>
      <option value="作者">作者</option>
     </select>
    </td>
   </tr>
  </table>
  <script language="javascript">
   function combox(obj, select) {
     this.obj = obj
     this.name = select;
     this.select = document.getElementsByName(select)[0];
     /*要转换的下拉框*/
    }
    /*初始化对象*/
   combox.prototype.init = function() {
     var inputbox = "<input name=‘combox_" + this.name + "‘ onchange=‘" + this.obj + ".find()‘ "
     inputbox += "style=‘position:absolute;width:" + (this.select.offsetWidth - 16) + ";height:" + this.select.offsetHeight + ";left:" + getL(this.select) + ";top:" + getT(this.select) + "‘>"
     document.write(inputbox)
     with(this.select.style) {
      left = getL(this.select)
      top = getT(this.select)
      position = "absolute"
      clip = "rect(0 " + (this.select.offsetWidth) + " " + this.select.offsetHeight + " " + (this.select.offsetWidth - 18) + ")"
       /*切割下拉框*/
     }
     this.select.onchange = new Function(this.obj + ".change()")
     this.change()
    }
    /*初始化结束*/
    ////////对象事件定义/////// 
   combox.prototype.find = function() {
    /*当搜索到输入框的值时,下拉框自动定位*/
    var inputbox = document.getElementsByName("combox_" + this.name)[0]
    with(this.select) {
     for (i = 0; i < options.length; i++)
      if (options[i].text.indexOf(inputbox.value) == 0) {
       selectedIndex = i
       this.change();
       break;
      }
    }
   }
   combox.prototype.change = function() {
     /*定义下拉框的onchange事件*/
     var inputbox = document.getElementsByName("combox_" + this.name)[0]
     inputbox.value = this.select.options[this.select.selectedIndex].text;
     with(inputbox) {
      select();
      focus()
     };
    }
    ////////对象事件结束/////// 
    /*公用定位函数(获取控件绝对坐标)*/
   function getL(e) {
    var l = e.offsetLeft;
    while (e = e.offsetParent) l += e.offsetLeft;
    return l
   }
   function getT(e) {
     var t = e.offsetTop;
     while (e = e.offsetParent) t += e.offsetTop;
     return t
    }
    /*结束*/
  </script>
  <script language="javascript">
   var a = new combox("a", "fason")
    a.init()
  </script>
 </body>
</html>
时间: 2024-12-29 06:42:21

可编辑下拉框的2种实现方式_javascript技巧_的相关文章

带输入查询功能匹配下拉框的几种实现方式

在Web开发中我们经常需要用户进行输入操作,输入框内我们输入几个字,输入框就会出现下拉提示你可能要输入的完整信息.下面我总结了几种常见的方案: 一:EasyUi combobox 组合框 具体使用方法官方文档上有详细介绍:http://www.jeasyui.net/plugins/169.html. 当然,你若觉得样式不怎么好看,引入easyui的 js 和css,可以进行简单的样式调整如下: .textbox { webkit-border-radius: 0px; border-radiu

jQuery打造智能提示插件二(可编辑下拉框)

在上一篇 jQuery打造智能提示插件 上改进,增加下拉按钮,修复点击下拉区域外不隐藏BUG 效果 下拉按钮素材: js封装,注意红色部分为BUG修复,然后传入boxwidth不带px: /* /// <reference path="jquery-autocomplete2.0.js" /> zhangs 20140516 */ (function($) { $.fn.combox = function(options) { var KEY = { UP: 38, DOW

HTML可编辑下拉框

<div style="position:relative;">   <select style="width:120px;" onchange="document.getElementById('input').value=this.value">     <option value="A类">A类</option>     <option value="B类&

jQuery自定义漂亮的下拉框插件8种效果演示

原始的下拉框不好看这里推荐一个jQuery自定义漂亮的下拉框插件8种效果演示 在线预览 下载地址 实例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 <!DOCTYPE html> <html lang="en" class=

在angular中实现下拉框的两种方式 ng-repeat和 ng-option

1. ng-repeat实现下拉框: select下拉框里option组装成下拉框,这里利用ng-repeat指令来创建 实现源码   <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>AngularJS之下拉框(方式二)</title> <script type="text/javascript" src="

jQuery自定义漂亮的下拉框插件8种效果

jquery美化选择器实例有:边框.下划线. 伸缩 .滑动. 覆盖. 旋转. 弹出层选择 .环形效果. 在线预览 实例代码 <body class="demo-1"> <div class="container"> <header class="codrops-header"> <h1> 自定义选择元素</h1> <nav class="codrops-demos&quo

生成下拉框的几种方法总结——数据来源:枚举

上节介绍数据来源是数据库,这节介绍对枚举进行数据获取,形成下拉列表. 使用场景:某些状态值获取等,一般是数据量小,不需要在数据库中进行维护的数据集 1.前提要有枚举数据 package com.test.entity.neworder; import java.util.Objects; /** * 新订单状态 * * @author 刘涛 */ public enum NewOrderStateEunm { //已删除 已删除(0, "已删除"), //已创建 已创建(1, &quo

下拉菜单的若干种实现方式

1.javascript方式 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> <link rel="stylesheet" type="text/css" href="./css/a1.css">

最完美的select下拉框美化

很多人为 select 的诸多不完善而头痛,如无法自定义样式. IE6 中无法被浮动层遮住等等.下面介绍一款堪称最完美的下拉框组件: UU 人下拉框 特点 1 :美化的并且可自定义的外观 UU 人下拉框使用 JS 进行渲染.当页面引入了脚本和 CSS 后,页面中的下拉框都会变成如下外观:精心开发5年的UI前端框架! 该外观是由 CSS 和图片控制.通过修改 CSS 可以很方便地实现更改外观. UU 人下拉框不存在 IE6 中无法被浮动层遮住等问题. 特点 2 :使用简单 UU 人下拉框代码写法与