INPUT 标签扩展

为了更方便的处理表单中的用户输入,标签库对 INPUT 标签进行了扩展。

使用

相关文件和依赖如下:

如果还要使用 Message 扩展,那么还需要引入root.animation.js组件。

扩展属性

基本扩展或新增的属性有:

与输入框样式相关的属性有:

与输入和验证提示相关的属性有:

以上以-text结尾的提醒文本属性均支持 Express 表达式

特有 type 类型的属性有:

其他原生属性请参照 INPUT 标签

扩展方法

方法可用于事件表达式中。

扩展事件

扩展事件建议像属性一样在标签上定义。

所有原生事件依然可用,如onchangeonblur等。

文本 type="text"

以下文本框只能输入英文字符:

示例代码为:

数字 type="number"

number 类型是 Html 的原生属性,只允许用户在输入框中输入数字,并且提供上下箭头以进行快速设置。root.js 对number类型的改变主要包括:

运行效果为:

正整数: 精度为4

number类型maxlength不可用,所有不能用来限制用户输入的长度,如果希望用maxlength来控制用户输入,请使用integerfloat类型。原生属性step用来控制箭头按钮的步长。

整数 type="integer"

integer 是扩展类型,只允许在输入框中输入整数和0,不像number提供上下箭头用来快速设置。其他与number相同。

运行效果为:

可以通过maxlength设置允许用户可输入的最大字符数。

小数 type="float"

float 也是扩展类型,除不提供上下箭头用来快速设置和支持maxlength外,其他均与number相同。

运行效果为:

密码 type="password"

password是原生类型,root.js 对password的扩展主要是增加了strength属性,用来设置密码强度,可选值有WEAKSTRONGCOMPLEX

当输入密码强度不满足要求时,显示invalid-text提示。

运行效果为:

确认密码 fit="#Password"

这个属性用来检查两次输入密码的是否一致,属性值为第一次密码输入框的 id。

运行效果为:

  请输入密码:
请再次输入密码:

注意fit属性中的#不能省略,可理解为是一个 CSS 选择器。另外也使用invalid-text提示不匹配。

手机号 type="mobile"

mobile是扩展类型,允许输入 11 位手机号码,且第 1 位必须是1,第 2 位必须是39。文本框中只允许输入数字。

运行效果为:

身份证号 type="idcard"

idcard也是扩展类型,允许输入18位身份证号码,除最后一位允许为X外,其他 17 位只能输入数字。

运行效果为:

姓名 type="name"

name也是扩展类型,至少输入两个字符。

运行效果为:

复选框

checkbox是原生类型,可使用options来设定选中和未选中状态下的值,也可以使用onchange+事件在状态切换时与服务器端交互。

切换按钮

switch是扩展类型,这个类型表现为一个切换按钮,按钮有两种状态,开启状态和关闭状态,点击时在两种状态之是切换。可以理解为是复选框的图片版本。可使用theme设置按钮的样式。

进一步对值进行检查

有时即使输入值符合要求,也要进一步对值进行检查,以判断是否符合系统要求,比如用户名唯一检查。使用onchange事件(当值改变时且失去焦点)触发。

运行效果为:

上例中,用户名master已经在系统中,{value}表示获取当前文本框的值。当文本框失去焦点时,会自动执行onchange+事件,并判断返回值是否为空。当返回值不为空,即用户名已经存在时,会提示failure-text属性中的文字,否则提示success-text中的文字。

其他组件触发更新

通过标签的set-{attr}-on属性,可以设置一个事件表达式,当表达式中的组件触发相应的事件时,更新文本框的值或其他属性。值格式设置见 Express 字符串

上例中,当文本框加载后和选择框Select1改变选项时,文本框的value自动更新,上式中的this指向当前文本框。当选择框Select2选项改变时,文本框的size属性自动更新。

对输入值进行拦截

gettersetter属性可以实现拦截器的功能,当获取或设置value属性的值时,对值进行加工,并返回加工后的值。这两个属性的属性值是一个 Javascript 短句,因为输入值是一个字符串,所以一般是字符串操作方法,使用value表示当前文本框的值。

上例中,当获取文本框的值时,会执行getter属性内的逻辑,自动将输入值去掉所有空白字符。当设置文本框的值时,会执行setter属性的逻辑,自动去掉输入值两端的空白字符。

可用的选择器

可使用原生选择器获取或设置文本框的值,例如$s('#TextBox1').value

其他扩展属性

除了可在在标签中定义的扩展属性之外,还有几个可用的扩展属性,这些属性不能在标签中定义。


参考链接


微信公众号
码农老吴  |  星源工作室  |  开发月志  |  问题反馈
联系我们:wu@qross.io     手机/微信:18618171102
京 ICP 备 20027445 号
$(h1)!