最新历史版本 :JS实现限制文本框控件文本长度 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

版本
功能变更
11.0-

1.2 应用场景

在实际填报过程中,对于单据类的编号的填报,可能编码为标准格式,有固定的长度,例如手机号,固定 11 位数。

在填报此类内容时,当字段超过特定的值时,需要设置提醒。如下图所示:

2020-12-08_10-58-37.gif

1.3 实现思路

文本框控件 添加「编辑后」事件,实时监控当前文本框中文本长度。

如果长度大于设定的长度,弹窗提醒且文本框中只保留符合长度规范的内容。

2. 方法一:JS 中固定数字编辑

方法一直接在 JS 中使用固定数字校验文本长度。

2.1 新建模板

新建一张普通报表。如下图所示:

新建普通报表.jpg

2.2 添加控件

为 A1 单元格添加文本控件。如下图所示:

1.jpg

2.3 添加事件

选中 A1 单元格,点击「控件设置>事件」,添加一个「编辑后」事件,在每输入一个字符后触发,即每输入一个字符,就对目前文本框的长度进行一次校验。如下图所示:

2.jpg

JavaScript 代码如下:

注:当需要校验的数据的长度有变化时,修改 JS 中校验长度的数字即可。

var data=this.getValue();
//获取到单元格的值
var len=data.length;
//判断值的长度
if(len>7)
{
_g().setCellValue("A1",data.substr(0,7));
//如果单元格值长度超过7位,就截取前7位重新赋值给文本框
//A1为报表中控件所在单元格位置
alert("最长为7位");//弹窗显示
}

3.  方法二:使用参数编辑

方法二首先设置一个模板参数,再在 JS 中使用此参数校验文本长度

3.1 新建模板

同 2.1 节,此处不再赘述。

3.2 添加控件

同 2.2 节,此处不再赘述。

3.3 添加参数

添加一个模板参数maxlen,设置默认值。如下图所示:

注:当需要校验的数据的长度有变化时,修改模板参数默认值即可。

3.jpg

3.4 添加事件

选中 A1 单元格,点击「控件设置>事件」,添加一个「编辑后」事件,事件中添加参数,在每输入一个字符后触发,即每输入一个字符,就对目前文本框的长度进行一次校验。如下图所示:

5.jpg

JavaScript 代码如下:

var data=this.getValue();
//获取到单元格的值
var len=data.length;
//判断值的长度
if(len>Number(maxlen))
{
_g().setCellValue("A1",data.substr(0,Number(maxlen)));
//如果单元格值长度超过maxlen位,就截取前maxlen位
//A1为报表中控件所在单元格位置
alert("最长为"+Number(maxlen)+"位");
}

4. 预览效果编辑

注:不支持移动端。

方法一、方法二的预览效果相同。

保存模板,选择「填报预览」,效果如 1.2 节所示。

5. 下载模板编辑

点击下载方法一模板:方法一JS中固定数字.cpt

点击下载方法二模板:方法二使用参数.cpt