Teal TealUI

填选器ui/picker

扩展的文本框。用户可手动输入或从下拉菜单中选择输入。

基本用法
定制下拉菜单
样式
基本样式
状态
颜色
大小
API
Picker 类

基本用法

import { VNode, render } from "ui/control";
import Picker from "ui/picker";

render(
    __root__,
    <Picker placeholder="输入或选择..."></Picker>
);

定制下拉菜单

继承 Picker 并重写 createMenu() 返回菜单控件。 重写 updateMenu() 用于将用户输入的内容同步到下拉菜单。

import { VNode, render } from "ui/control";
import Picker from "ui/picker";
import TextBox from "ui/textBox";

class MyPicker extends Picker {

    createMenu() {
        var txt = new TextBox();        // 创建下拉菜单。
        txt.onInput = e => {            // 在下拉菜单的操作同步到输入框。
        
            this.input.value = txt.value;
        };
        return txt;
    }

    updateMenu() {                      // 在输入框的操作同步到下拉菜单。
        this.menu.value = this.input.value;
    }

}

render(
    __root__,
    <MyPicker resizeMode="fitInput" />
);

样式

基本样式

类型:
类型:
<span class="x-picker">
    <input type="text" class="x-textbox" autocomplete="off" placeholder="输入或选择..." />
    <button type="button" class="x-button" tabIndex="-1"><i class="x-icon">⮟</i></button>
</span>

状态

只读:
禁用:
只读:
<span class="x-picker">
    <input type="text" class="x-textbox" autocomplete="off" placeholder="输入或选择..." readonly />
    <button type="button" class="x-button" tabIndex="-1" disabled><i class="x-icon">⮟</i></button>
</span>
禁用: <span class="x-picker"> <input type="text" class="x-textbox" autocomplete="off" placeholder="输入或选择..." disabled /> <button type="button" class="x-button" tabIndex="-1" disabled><i class="x-icon">⮟</i></button> </span>

颜色

信息:
成功:
警告:
失败:
信息:
<span class="x-picker">
    <input type="text" class="x-textbox x-textbox-info" autocomplete="off" placeholder="输入或选择..." />
    <button type="button" class="x-button" tabIndex="-1"><i class="x-icon">⮟</i></button>
</span>
成功: <span class="x-picker"> <input type="text" class="x-textbox x-textbox-success" autocomplete="off" placeholder="输入或选择..." /> <button type="button" class="x-button" tabIndex="-1"><i class="x-icon">⮟</i></button> </span>
警告: <span class="x-picker"> <input type="text" class="x-textbox x-textbox-warning" autocomplete="off" placeholder="输入或选择..." /> <button type="button" class="x-button" tabIndex="-1"><i class="x-icon">⮟</i></button> </span>
失败: <span class="x-picker"> <input type="text" class="x-textbox x-textbox-error" autocomplete="off" placeholder="输入或选择..." /> <button type="button" class="x-button" tabIndex="-1"><i class="x-icon">⮟</i></button> </span>

大小

小:
大:
小:
<span class="x-picker">
    <input type="text" class="x-textbox x-textbox-small" autocomplete="off" placeholder="输入或选择..." />
    <button type="button" class="x-button x-button-small" tabIndex="-1"><i class="x-icon">⮟</i></button>
</span>
大: <span class="x-picker"> <input type="text" class="x-textbox x-textbox-large" autocomplete="off" placeholder="输入或选择..." /> <button type="button" class="x-button x-button-large" tabIndex="-1"><i class="x-icon">⮟</i></button> </span>

API

Picker 类

继承自:TextBox

表示一个填选器。

字段 类型 描述 继承自
⮞ button : HTMLButtonElement

按钮。

HTMLButtonElement

按钮。

—
⮞ icon : string

图标。

string

图标。

—
⮞ menu : Control

(只读)下拉菜单控件。

Control

(只读)下拉菜单控件。

—
⮞ menuOptions : Partial<Control>

下拉菜单控件的选项。

Partial<Control>

下拉菜单控件的选项。

—
⮞ resizeMode : "auto" | "fitInput" | "fitDropDown" | "none"

下拉框大小模式。

  • auto(默认): 确保下拉菜单比文本框宽度大。
  • fitInput: 下拉菜单适应文本框宽度。
  • fitDropDown: 文本框适应下拉菜单宽度。
  • none:不处理下拉框大小。
string

下拉框大小模式。

  • auto(默认): 确保下拉菜单比文本框宽度大。
  • fitInput: 下拉菜单适应文本框宽度。
  • fitDropDown: 文本框适应下拉菜单宽度。
  • none:不处理下拉框大小。
—
⮞ dropDown : Popup

(只读)下拉菜单。

Popup

(只读)下拉菜单。

—
⮞ dropDownOptions : Partial<Popup>

下拉菜单的选项。

Partial<Popup>

下拉菜单的选项。

—
⮞ onDropDownShow : (sender: Picker) => void

下拉菜单显示事件。

function

下拉菜单显示事件。

—
⮞ onDropDownHide : (sender: Picker) => void

下拉菜单隐藏事件。

function

下拉菜单隐藏事件。

—
⮞ value : any

(已覆盖)值。

继承自

TextBox

any

(已覆盖)值。

TextBox
⮞ disabled : boolean

(已覆盖)是否禁用。

继承自

TextBox

boolean

(已覆盖)是否禁用。

TextBox
⮞ readOnly : boolean

(已覆盖)是否只读。

继承自

TextBox

boolean

(已覆盖)是否只读。

TextBox
⮞ body : HTMLElement

(已覆盖)(只读)获取用于包含子控件和节点的根元素。

继承自

TextBox

HTMLElement

(已覆盖)(只读)获取用于包含子控件和节点的根元素。

TextBox
⮞ onSelectEnd : (e: UIEvent, sender: Picker) => void function

选择结束事件。

TextBox
⮞ input : HTMLInputElement

(只读)内部关联的输入框元素。

继承自

Input

HTMLInputElement

(只读)内部关联的输入框元素。

Input
⮞ name : string

名字。

继承自

Input

string

名字。

Input
⮞ defaultValue : any

默认值。

继承自

Input

any

默认值。

Input
⮞ type : string

输入框的类型。

继承自

Input

string

输入框的类型。

Input
⮞ placeholder : string

未输入内容时的占位符。

继承自

Input

string

未输入内容时的占位符。

Input
⮞ tabIndex : number

TAB 键切换顺序。

继承自

Input

number

TAB 键切换顺序。

Input
⮞ tabStop : boolean

是否允许 TAB 键停靠。

继承自

Input

boolean

是否允许 TAB 键停靠。

Input
⮞ onCopy : (e: ClipboardEvent, sender: Picker) => void function

复制事件。

Input
⮞ onCut : (e: ClipboardEvent, sender: Picker) => void function

剪切事件。

Input
⮞ onPaste : (e: ClipboardEvent, sender: Picker) => void function

粘贴事件。

Input
⮞ onBeforeCopy : (e: ClipboardEvent, sender: Picker) => void

即将复制事件。

参考

继承自

Input

function

即将复制事件。

Input
⮞ onBeforeCut : (e: ClipboardEvent, sender: Picker) => void

即将剪切事件。

参考

继承自

Input

function

即将剪切事件。

Input
⮞ onBeforePaste : (e: ClipboardEvent, sender: Picker) => void

即将粘贴事件。

参考

继承自

Input

function

即将粘贴事件。

Input
⮞ onFocus : (e: FocusEvent, sender: Picker) => void function

获取焦点事件。

Input
⮞ onBlur : (e: FocusEvent, sender: Picker) => void function

失去焦点事件。

Input
⮞ onFocusIn : (e: FocusEvent, sender: Picker) => void

当前元素和子元素获取焦点事件。

参考

继承自

Input

function

当前元素和子元素获取焦点事件。

Input
⮞ onFocusOut : (e: FocusEvent, sender: Picker) => void

当前元素和子元素失去焦点事件。

参考

继承自

Input

function

当前元素和子元素失去焦点事件。

Input
⮞ onInput : (e: Event, sender: Picker) => void function

输入事件。

Input
⮞ onChange : (e: Event, sender: Picker) => void function

更改事件。

Input
⮞ onKeyDown : (e: KeyboardEvent, sender: Picker) => void function

键盘按下事件。

Input
⮞ onKeyPress : (e: KeyboardEvent, sender: Picker) => void function

键盘点击事件。

Input
⮞ onKeyUp : (e: KeyboardEvent, sender: Picker) => void function

键盘按上事件。

Input
⮞ onEnter : (e: KeyboardEvent, sender: Picker) => void

回车事件。

继承自

Input

function

回车事件。

Input
⮞ status : Status

控件状态。

继承自

Input

Status

控件状态。

Input
⮞ statusClassPrefix : string

控件状态前缀。

继承自

Input

string

控件状态前缀。

Input
⮞ hideSuccess : boolean

是否隐藏验证成功状态。

继承自

Input

boolean

是否隐藏验证成功状态。

Input
⮞ noValidate : boolean

是否禁用验证。

继承自

Input

boolean

是否禁用验证。

Input
⮞ validateEvent : string

触发验证的事件。

继承自

Input

string

触发验证的事件。

Input
⮞ required : boolean

字段是否必填。

继承自

Input

boolean

字段是否必填。

Input
⮞ requiredMessage : string

字段不满足必填时的提示文案。

继承自

Input

string

字段不满足必填时的提示文案。

Input
⮞ maxLength : number

最大长度。-1 表示不限制。

继承自

Input

number

最大长度。-1 表示不限制。

Input
⮞ maxLengthMessage : string

字段不满足最大长度时的提示文案。

继承自

Input

string

字段不满足最大长度时的提示文案。

Input
⮞ minLength : number

最小长度。-1 表示不限制。

继承自

Input

number

最小长度。-1 表示不限制。

Input
⮞ minLengthMessage : string

字段不满足最小长度时的提示文案。

继承自

Input

string

字段不满足最小长度时的提示文案。

Input
⮞ max : any

最大值。

继承自

Input

any

最大值。

Input
⮞ maxMessage : string

字段不满足最大值时的提示文案。

继承自

Input

string

字段不满足最大值时的提示文案。

Input
⮞ min : any

最小值。

继承自

Input

any

最小值。

Input
⮞ minMessage : string

字段不满足最小值时的提示文案。

继承自

Input

string

字段不满足最小值时的提示文案。

Input
⮞ pattern : RegExp

匹配格式的正则表达式。

继承自

Input

RegExp

匹配格式的正则表达式。

Input
⮞ patternMessage : string

字段不满足格式时的提示文案。

继承自

Input

string

字段不满足格式时的提示文案。

Input
⮞ validateErrorMessage : string

验证失败的提示文案。

继承自

Input

string

验证失败的提示文案。

Input
⮞ validateStartMessage : string

开始异步验证的提示文案。

继承自

Input

string

开始异步验证的提示文案。

Input
⮞ validateStartMessagePrefix : string

开始异步验证的提示文案前缀。

继承自

Input

string

开始异步验证的提示文案前缀。

Input
⮞ validateInfoMessagePrefix : string

验证信息状态的提示文案前缀。

继承自

Input

string

验证信息状态的提示文案前缀。

Input
⮞ validateErrorMessagePrefix : string

验证失败状态的提示文案前缀。

继承自

Input

string

验证失败状态的提示文案前缀。

Input
⮞ validateWarningMessagePrefix : string

验证警告状态的提示文案前缀。

继承自

Input

string

验证警告状态的提示文案前缀。

Input
⮞ validateSuccessMessagePrefix : string

验证成功状态的提示文案前缀。

继承自

Input

string

验证成功状态的提示文案前缀。

Input
⮞ willValidate : boolean

(只读)判断当前输入域是否需要验证。

继承自

Input

boolean

(只读)判断当前输入域是否需要验证。

Input
⮞ validateDelay : number

验证事件触发后延时验证的毫秒数。

继承自

Input

number

验证事件触发后延时验证的毫秒数。

Input
⮞ revalidateDelay : number

重新验证事件触发后延时验证的毫秒数。

继承自

Input

number

重新验证事件触发后延时验证的毫秒数。

Input
⮞ onValidate : (value: any, sender: Picker) => ValidityResult

验证事件。

继承自

Input

function

验证事件。

Input
⮞ onReportValidity : (validityResult: NormalizedValidityResult, sender: Picker) => boolean | void

报告验证结果事件。

继承自

Input

function

报告验证结果事件。

Input
⮞ validityToolTipOptions : Partial<ToolTip>

验证工具提示的选项。

继承自

Input

Partial<ToolTip>

验证工具提示的选项。

Input
⮞ readyState : ControlState

获取当前控件的渲染状态。

继承自

Control

ControlState

获取当前控件的渲染状态。

Control
⮞ elem : HTMLElement

关联的元素。

继承自

Control

HTMLElement

关联的元素。

Control
⮞ vNode : VNode

(保护的)获取当前控件关联的虚拟节点。

继承自

Control

VNode

(保护的)获取当前控件关联的虚拟节点。

Control
⮞ sourceVNode : VNode

获取创建该控件使用的源虚拟节点。

继承自

Control

VNode

获取创建该控件使用的源虚拟节点。

Control
⮞ alwaysUpdate : boolean

控件是否使用主动更新模式。

继承自

Control

boolean

控件是否使用主动更新模式。

Control
⮞ duration : number = 200

渐变的持续毫秒数。如果为 0 则不使用渐变。

继承自

Control

number

渐变的持续毫秒数。如果为 0 则不使用渐变。

Control
⮞ class : string

CSS 类名。

继承自

Control

string

CSS 类名。

Control
⮞ hidden : boolean

是否隐藏。

继承自

Control

boolean

是否隐藏。

Control
⮞ style : string | { [key: string]: string | number; }

控件样式。

继承自

Control

string | object

控件样式。

Control
⮞ id : string

控件序号。

继承自

Control

string

控件序号。

Control
⮞ content : NodeLike

控件内容。

继承自

Control

NodeLike

控件内容。

Control
⮞ onSelectStart : (e: Event, sender: Picker) => void function

选择开始事件。

Control
⮞ onClick : (e: MouseEvent, sender: Picker) => void function

点击事件。

Control
⮞ onAuxClick : (e: MouseEvent, sender: Picker) => void function

中键点击事件。

Control
⮞ onDblClick : (e: MouseEvent, sender: Picker) => void function

双击事件。

Control
⮞ onContextMenu : (e: PointerEvent, sender: Picker) => void function

右键菜单事件。

Control
⮞ onMouseDown : (e: MouseEvent, sender: Picker) => void function

鼠标按下事件。

Control
⮞ onMouseUp : (e: MouseEvent, sender: Picker) => void function

鼠标按上事件。

Control
⮞ onMouseOver : (e: MouseEvent, sender: Picker) => void function

鼠标移入事件。

Control
⮞ onMouseOut : (e: MouseEvent, sender: Picker) => void function

鼠标移开事件。

Control
⮞ onMouseEnter : (e: MouseEvent, sender: Picker) => void function

鼠标进入事件。

Control
⮞ onMouseLeave : (e: MouseEvent, sender: Picker) => void function

鼠标离开事件。

Control
⮞ onMouseMove : (e: MouseEvent, sender: Picker) => void function

鼠标移动事件。

Control
⮞ onWheel : (e: WheelEvent, sender: Picker) => void function

鼠标滚轮事件。

Control
⮞ onScroll : (e: UIEvent, sender: Picker) => void function

滚动事件。

Control
⮞ onTouchStart : (e: TouchEvent, sender: Picker) => void function

触摸开始事件。

Control
⮞ onTouchMove : (e: TouchEvent, sender: Picker) => void function

触摸移动事件。

Control
⮞ onTouchEnd : (e: TouchEvent, sender: Picker) => void function

触摸结束事件。

Control
⮞ onTouchCancel : (e: TouchEvent, sender: Picker) => void function

触摸撤销事件。

Control
⮞ onPointerEnter : (e: PointerEvent, sender: Picker) => void function

指针进入事件。

Control
⮞ onPointerLeave : (e: PointerEvent, sender: Picker) => void function

指针离开事件。

Control
⮞ onPointerOver : (e: PointerEvent, sender: Picker) => void function

指针移入事件。

Control
⮞ onPointerOut : (e: PointerEvent, sender: Picker) => void function

指针移开事件。

Control
⮞ onPointerDown : (e: PointerEvent, sender: Picker) => void function

指针按下事件。

Control
⮞ onPointerMove : (e: PointerEvent, sender: Picker) => void function

指针移动事件。

Control
⮞ onPointerUp : (e: PointerEvent, sender: Picker) => void function

指针松开事件。

Control
⮞ onPointerCancel : (e: PointerEvent, sender: Picker) => void function

指针取消事件。

Control
⮞ onGotPointerCapture : (e: PointerEvent, sender: Picker) => void function

指针开始捕获事件。

Control
⮞ onLostPointerCapture : (e: PointerEvent, sender: Picker) => void function

指针停止捕获事件。

Control
方法 描述 继承自
⮞ createMenu()():Control

(保护的)当被子类重写时负责创建下拉菜单。

返回值

类型:Control

返回下拉菜单。

(保护的)当被子类重写时负责创建下拉菜单。

—
⮞ updateMenu()():void

(保护的)当被子类重写时负责更新下拉菜单的值。

返回值

类型:void

(保护的)当被子类重写时负责更新下拉菜单的值。

—
⮞ createDropDown()():Popup

(保护的)当被子类重写时负责创建下拉菜单。

返回值

类型:Popup

返回下拉菜单。

(保护的)当被子类重写时负责创建下拉菜单。

—
⮞ handleDropDownShow()():void

(保护的)处理下拉菜单显示事件。

返回值

类型:void

(保护的)处理下拉菜单显示事件。

—
⮞ handleButtonClick()():void

(保护的)处理按钮点击事件。

返回值

类型:void

(保护的)处理按钮点击事件。

—
⮞ handleDropDownHide()():void

(保护的)处理下拉菜单隐藏事件。

返回值

类型:void

(保护的)处理下拉菜单隐藏事件。

—
⮞ handleInput()():void

(保护的)处理输入事件。

返回值

类型:void

(保护的)处理输入事件。

—
⮞ render()():VNode

(保护的)

返回值

类型:VNode

继承自

TextBox

(保护的)(已覆盖)当被子类重写时负责返回当前控件的虚拟节点。

TextBox
⮞ init()():void

(保护的)

返回值

类型:void

继承自

TextBox

(保护的)(已覆盖)当被子类重写时负责在关联元素后初始化当前控件。

TextBox
⮞ select()():void

全选当前控件。

返回值

类型:void

继承自

TextBox

全选当前控件。

TextBox
⮞ isHidden()():boolean

判断输入域样式是否被隐藏。

返回值

类型:boolean

如果控件或其父元素被隐藏则返回 true,否则返回 false。

继承自

Input

判断输入域样式是否被隐藏。

Input
⮞ handleValidateEvent()():void

(保护的)处理验证事件。

返回值

类型:void

继承自

Input

(保护的)处理验证事件。

Input
⮞ checkValidity()():NormalizedValidityResult | Promise<NormalizedValidityResult>

验证当前输入域。

返回值

类型:NormalizedValidityResult | Promise<NormalizedValidityResult>

返回验证结果。如果正在执行异步验证则返回一个确认对象。

继承自

Input

验证当前输入域。

Input
⮞ validate(value)(value:this["value"]):ValidityResult

(保护的)当被子类重写时负责验证指定的值。

参数 类型 描述 默认值
value* this["value"] —

返回值

类型:ValidityResult

返回验证结果。如果正在执行异步验证则返回一个确认对象。

继承自

Input

(保护的)当被子类重写时负责验证指定的值。

Input
⮞ normlizeValidityResult(r)(r:ValidityResult):NormalizedValidityResult | Promise<NormalizedValidityResult>

(保护的)规范化验证结果对象。

参数 类型 描述 默认值
r* ValidityResult —

返回值

类型:NormalizedValidityResult | Promise<NormalizedValidityResult>

继承自

Input

(保护的)规范化验证结果对象。

Input
⮞ reportValidity()():NormalizedValidityResult | Promise<NormalizedValidityResult>

向用户报告验证结果。

返回值

类型:NormalizedValidityResult | Promise<NormalizedValidityResult>

返回验证结果。如果正在执行异步验证则返回一个确认对象。

继承自

Input

向用户报告验证结果。

Input
⮞ setCustomValidity(validityResult)(validityResult:string | boolean | Partial<NormalizedValidityResult>):void

设置自定义的验证消息。

参数 类型 描述 默认值
validityResult* string | boolean | Partial<NormalizedValidityResult> —

返回值

类型:void

继承自

Input

设置自定义的验证消息。

Input
⮞ createValidityToolTip()():ToolTip

(保护的)当被子类重写时负责创建当前输入框的默认验证提示。

返回值

类型:ToolTip

继承自

Input

(保护的)当被子类重写时负责创建当前输入框的默认验证提示。

Input
⮞ reset()():void

重置当前输入域。

返回值

类型:void

继承自

Input

重置当前输入域。

Input
⮞ focus()():void

令当前控件获得焦点。

返回值

类型:void

继承自

Input

令当前控件获得焦点。

Input
⮞ blur()():void

令当前控件失去焦点。

返回值

类型:void

继承自

Input

令当前控件失去焦点。

Input
⮞ layout(changes)(changes:Changes):void
参数 类型 描述 默认值
changes* Changes —

返回值

类型:void

继承自

Control

重新布局当前控件。

Control
⮞ uninit()():void

(保护的)当被子类重写时负责在元素被取消关联前取消初始化当前控件。

返回值

类型:void

继承自

Control

(保护的)当被子类重写时负责在元素被取消关联前取消初始化当前控件。

Control
⮞ update()():void

重新渲染当前控件。

返回值

类型:void

继承自

Control

重新渲染当前控件。

Control
⮞ invalidate()():void

使当前控件无效并在下一帧重新渲染。

返回值

类型:void

继承自

Control

使当前控件无效并在下一帧重新渲染。

Control
⮞ renderTo(parent, ...)(parent:Control | Node, refChild?:Control | Node):void

将当前控件渲染到指定的父控件或节点。

参数 类型 描述 默认值
parent* Control | Node —
refChild Control | Node —

返回值

类型:void

继承自

Control

将当前控件渲染到指定的父控件或节点。

Control
⮞ find(selector)(selector:string):Control | HTMLElement

在当前控件查找指定的子控件或节点。

参数 类型 描述 默认值
selector* string —

返回值

类型:Control | HTMLElement

返回子控件或节点。如果找不到则返回 null。

继承自

Control

在当前控件查找指定的子控件或节点。

Control
⮞ query(selector)(selector:string):(Control | HTMLElement)[]

在当前控件查找匹配的所有子控件或节点。

参数 类型 描述 默认值
selector* string —

返回值

类型:(Control | HTMLElement)[]

返回子控件或节点列表。

继承自

Control

在当前控件查找匹配的所有子控件或节点。

Control