Select 控件Combox加强版(IE Only)

作者:快乐笛子 来源:快乐笛子的博客 时间:2008-07-23 13:26:00 

概述:

本控件使用 html+css+javascript模拟HTML内置的select元素,实现其部分方法与属性,也增加了一部分功能,并且从UI上超越原生select控件。本控件使用到隐藏域、文本框、隐藏框架,隐藏域保存控件的值,文本框保存选项文本,隐藏框架通过切换显示/隐藏达到菜单收展效果,并储存选项列表。

js框架:myjsFrame 源代码下载 (0.21 API 开发文档)

MyJSFrame API 开发帮助文档

用法:

  1. 页面上先后引用 myJSFrame.jscombox.js

  2. 在需要使用控件的地方加入如下代码: var data = "张三:123456,李四:654321,赵武:456789,钱六:987654,赵七:000";//数据源(数据源格式包含几种格式,详细见下面所述)
    var t = new ComBox( data );//必须。创建实例
    t.name="demo"; //必须。指定实例名称,名称必须唯一,多个同类的控件名称不同
    t.write();//必须。输出控件

上面示例代码共四行,且都是必需的。新创建的实例除了有name属性与write方法外,还有其他属性方法:

  • readOnly

    可选属性。值类型为布尔类型。默认为 true。

  • selectedIndex

    可选属性。值为整型。默认为 -1。预设下拉列表被选中的项目。-1 表示不选。0 表示第一个选项,以此类推。

  • onchange

    可选属性。值类型为方法(function)。类似于 select 控件的 onchange 事件。可给实例绑定自定义方法,默认给方法传入实例对象。

  • width

    可选属性。值为整型。默认值为 140。定义控件宽度。

  • autoComplete

    可选属性。值类型为布尔类型。默认为 true。设置控件是否需要自动完成。在 readOnly 为 true 的情况下,按a-z键将会自动按字母索引下拉选项,在 readOnly 为 false 的情况下,下拉列表将按用户的输入自动加粗选项以提示。

控件基本结构:

<div class="combox" style="zoom:1">隐藏域存放 value,输入框显示文本,iframe 内部 html 将在 write 方法执行时生成。
  <input type="hidden" /><input type="text" /><a href="javascript:void(0)"><img src="trigger.gif" /></a><iframe frameborder=0 src="about:blank" name=""></iframe>
</div>

数据源:

  • 对象

  • {text:"value", text1:"value1", text2:"value2"......}

  • 数组

  • ["text:value", "text1:value1", "text2:value2"......]

  • 字符串

  • "text:value,text1:value1,text2:value2......"

公用方法:

页面上创建的所有控件都会在虚拟队列里注册,公用方法入口 ComBox.findInstance(name) 中的参数 name 为控件实例名称,该方法找到页面上的控件,并提供若干方法与属性,下面列出各方法与属性的完整调用形式:

  • ComBox.findInstance(name).options

    所有选项的集合。实质是个标准的数组,每个元素是一个完整的对象,形如:{text:xxx,value:123456}

  • ComBox.findInstance(name).selectedIndex

    当前选中的选项序号。从0开始计算的下标值。如果所有都未被选,返回 -1。

  • ComBox.findInstance(name).text

    当前选中的选项文本。

  • ComBox.findInstance(name).value

    当前选中的选项值。

  • ComBox.findInstance(name).setValue(value)

    设置控件的值。该方法将查找所有选项的值,匹配的第一个选项将被选中,其余的选项处于待选状态。如果所有的选项均不匹配传入的value,则所有选项都处于待选状态。

  • ComBox.findInstance(name).setText(text)

    设置控件的值。该方法将查找所有选项的文本,匹配的第一个选项将被选中,其余的选项处于待选状态。如果所有的选项均不匹配传入的text,则所有选项都处于待选状态。

  • ComBox.findInstance(name).select(n)

    选中下标为 n 的选项。

  • ComBox.findInstance(name).add(text,value)

    增加一个选项。新选项将出现在列表的底部。

  • ComBox.findInstance(name).addBefore(text,value,n)

    增加一个选项。新选项将在指定的下标位置 n 前面出现。

  • ComBox.findInstance(name).remove(n)

    移除下标为 n 的选项。

  • ComBox.findInstance(name).sort(fun)

    给下拉选项排序。fun 是排序的方式,如顺序、倒序,如按客户端区域设置排序,则 fun 为 function(a,b){return a.localeCompare(b)}

另外,上面提到的所有方法都可以迭代执行,比如 ComBox.findInstance("myName").add("啊蔡","27").sort().select(1); 表示新增一个选项后在给所有选项排序,然后选中下标为1的选项。

演示 

作者网站下载:combox.rar

本站下载地址:combox.rar (16.36 KB)

 

标签:select,控件,myjsFrame
0
投稿

猜你喜欢

  • Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)

    2022-01-24 03:20:13
  • 在JavaScript中使用inline函数的问题

    2024-04-29 13:42:44
  • Golang并发利器sync.Once的用法详解

    2024-04-25 15:12:06
  • C#实例代码之抽奖升级版可以经表格数据导入数据库,抽奖设置,补抽

    2024-01-26 14:21:41
  • Python os模块介绍

    2023-02-04 11:28:15
  • Python中将字典转换为XML以及相关的命名空间解析

    2022-07-22 20:05:03
  • SQL Server的触发器你了解多少

    2024-01-14 21:15:57
  • Msxml2.XMLHTTP Microsoft.XMLHTTP new XMLHttpRequest用法

    2010-03-30 09:43:00
  • C#从数据库读取图片并保存的两种方法

    2024-01-12 14:39:22
  • Opencv实现计算两条直线或线段角度方法详解

    2023-10-01 22:18:15
  • python groupby函数实现分组后选取最值

    2022-06-02 09:27:45
  • 推荐一篇不错的新手asp编程的基本法则

    2011-04-15 11:08:00
  • Python中函数的参数定义和可变参数用法实例分析

    2023-10-04 00:26:30
  • Pytorch 卷积中的 Input Shape用法

    2023-03-27 21:46:35
  • 基于Python实现随机点名系统的示例代码

    2023-05-05 20:53:52
  • PyTorch模型转TensorRT是怎么实现的?

    2021-09-01 08:14:02
  • Python程序设计入门(1)基本语法简介

    2023-09-12 05:03:31
  • Linux下mysql新建账号及权限设置方法

    2024-01-22 21:38:07
  • Python绘制K线图之可视化神器pyecharts的使用

    2023-06-28 12:30:58
  • Python prettytable模块应用详解

    2022-05-11 13:10:15
  • asp之家 网络编程 m.aspxhome.com