TextBox

FineUI. TextBox

new TextBox(options)

Description:
Examples

创建文本输入框,使用fieldLabel指定字段标签,emptyText设置占位文本:

FineUI.create({
	type: 'TextBox', renderTo: document.body, fieldLabel: '用户名', emptyText: '请输入用户名'
});

使用required设为必填项,搭配redStar显示红色星号:

FineUI.create({
	type: 'TextBox', renderTo: document.body, fieldLabel: '密码', emptyText: '请输入密码',
	required: true, redStar: true
});

使用inputType: 'password'实现密码输入框:

FineUI.create({
	type: 'TextBox', renderTo: document.body, fieldLabel: '密码', inputType: 'password'
});

使用regexPattern验证常见格式(email、number、url、ip_address、identity_card 等):

FineUI.create({
	type: 'TextBox', renderTo: document.body, fieldLabel: '邮箱', regexPattern: 'email', required: true
});

通过change事件监听文本变化(默认 300ms 延迟):

FineUI.create({
	type: 'TextBox', renderTo: document.body, fieldLabel: '搜索', emptyText: '输入后立即触发 change',
	listeners: {
		change: function (event) {
			FineUI.alert('当前内容:' + this.getValue());
		}
	}
});
Parameters:
Name Type Description
options Object

初始参数

Properties
Name Type Default Description
value string

显示文本

inputType string 'text'

文本输入框的类型(text, password, 或者 HTML5 属性(url, date, color, tel, number...))

emptyText string ''

值为空时显示的占位文本

minLength number

最小长度(对显示文本进行验证)

maxLength number

最大长度(对显示文本进行验证)

required boolean false

是否必填项(对显示文本进行验证)

regexPattern string ''

需要验证的正则表达式规则(可选项为:email, number, url, postal_code, ip_address, identity_card, alpha, alpha_number, alpha_underline, alpha_number_underline, alpha_lowercase, alpha_uppercase)(对显示文本进行验证)

regex RegExp ''

需要验证的正则表达式(对显示文本进行验证)

regexText string ''

不满足正则表达式时的提示信息

validateForValue boolean false

对值进行验证(受影响的验证参数:minLength, maxLength, required, regex, regexPattern)

editable boolean true

是否可编辑(可以响应触发按钮,注意和 readonly 的区别)

enterToSubmit boolean true

是否回车键提交表单

enterFocusControl string ''

回车时需要聚焦的控件

enterClickControl string ''

回车时需要点击的控件

autoComplete string false

禁用输入字段的自动完成功能(默认为false)

changeEventDelay number 300

触发change事件之前延迟的毫秒数(默认为300ms,如果设为0则不延迟)

type string 'TextBox'

控件类型

Extends

Members

bodyEl :jQuery

Description:
  • 字段主体对应的jQuery节点对象

Inherited From:

字段主体对应的jQuery节点对象

Type:
  • jQuery

el :jQuery

Description:
  • 控件对应的jQuery节点对象

Inherited From:

控件对应的jQuery节点对象

Type:
  • jQuery

items :Object

Description:
  • 子控件列表

Inherited From:

子控件列表

Type:
  • Object

Methods

getEncodedText(text) → {string}

Description:
  • 获取编码后的字符串

Inherited From:
Parameters:
Name Type Description
text string

原始字符串

Returns:

编码后的字符串

Type
string

getFormFields() → {Array.<FineUI.Field>}

Description:
  • 获取容器内(深度遍历)所有表单字段实例(FineUI.Field的子类,如TextBox/NumberBox/DatePicker等)

Inherited From:
Example

遍历表单全部字段,序列化为 name → value 的对象(用于自定义 ajax 提交;字段未声明name时改用id):

var values = {};
FineUI.ui.form1.getFormFields().forEach(function (field) {
    values[field.name || field.id] = field.getValue();
});
// values 形如:{ tbxUserName: 'FineUIPro', numberAge: 30, ... }
Returns:

表单字段数组

Type
Array.<FineUI.Field>

getItem(value) → {FineUI.Component}

Description:
  • 获取子控件(按索引/标识符/匹配函数查找;通常配合items无显式 id 的场景,比按FineUI.ui[id]更精准)

Inherited From:
Examples

按索引取第一个子控件:

var firstChild = FineUI.ui.toolbar1.getItem(0);

按 id 取子控件:

var btn = FineUI.ui.toolbar1.getItem('btnSave');

按匹配函数找第一个匹配的子控件(函数对每项返回 true 即匹配):

var btn = FineUI.ui.toolbar1.getItem(function (item) {
    return item.type === 'Button' && item.text === '保存';
});
Parameters:
Name Type Description
value number | string | function

子控件索引、标识符或者匹配函数

Returns:

子控件实例

Type
FineUI.Component

hidePopEl()

Description:
  • 隐藏容器内的所有弹出框

Inherited From:

isType(value) → {boolean}

Description:
  • 检测当前实例是否指定的控件类型

Inherited From:
Example
grid1.isType('panel') // 返回true
grid1.isType('grid')  // 返回true
Parameters:
Name Type Description
value Object

控件类型

Returns:

如果当前实例是指定的控件类型,返回true;否则返回false

Type
boolean

Events

beforehide

Description:
  • 隐藏控件之前触发(返回false则取消隐藏操作)

Inherited From:

beforeshow

Description:
  • 显示控件之前触发(返回false则取消显示操作)

Inherited From:

blur

Description:
  • 输入框失去焦点时触发(常用于失焦校验或失焦联动)

Example

失焦触发字段校验(仅校验当前字段,不影响整表):

FineUI.create({
    type: 'TextBox', fieldLabel: '邮箱', regex: /^[\w.]+@[\w.]+$/,
    listeners: {
        blur: function () {
            this.validate();
        }
    }
});
Parameters:
Name Type Description
event jQuery.Event

事件对象

change

Description:
  • 输入框值改变时触发(失焦或回车后;继承到所有 TextBox 派生类如NumberBox/DatePicker/DropDownList

Example

响应值变化做联动:

FineUI.create({
    type: 'TextBox', fieldLabel: '关键字',
    listeners: {
        change: function () {
            FineUI.ui.grid1.loadDataUrl('/api/search', { q: this.getValue() });
        }
    }
});
Parameters:
Name Type Description
event jQuery.Event

事件对象

enter

Description:
  • 输入框获取焦点并按下 ENTER 键时触发(常用于"搜索框回车提交"或"密码框回车登录")

Example

搜索框回车触发搜索(也可改用配置属性enterClickControl声明式实现):

FineUI.create({
    type: 'TextBox', fieldLabel: '关键字',
    listeners: {
        enter: function () {
            FineUI.ui.btnSearch.click();
        }
    }
});
Parameters:
Name Type Description
event jQuery.Event

事件对象

focus

Description:
  • 输入框获取焦点时触发

Parameters:
Name Type Description
event jQuery.Event

事件对象

hide

Description:
  • 隐藏控件时触发

Inherited From:

layout

Description:
  • 布局控件时触发

Inherited From:

remove

Description:
  • 移除控件时触发(调用 remove() 时,控件 DOM 被销毁之前触发;可用于清理外部资源 / 解绑全局事件)

Inherited From:

render

Description:
  • 渲染控件时触发

Inherited From:

show

Description:
  • 显示控件时触发

Inherited From: