當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

JS實現限制文本框控件文本長度

1. 概述

1.1 問題描述

在實際填報過程中,對於單據類的編号的填報,可能編碼爲标準格式,有固定的長度,例如手機号,固定 11 位數。在填報這類内容時,當字段超過特定的值時,如何設置提醒填報人呢?如下圖所示:

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

1.2 實現思路

「文本框控件」添加「編輯後」事件,實時監控當前文本框中文本長度,如果長度大於設定的長度,彈窗提醒且文本框中只保留符合長度規範的内容。

2. 示例

2.1 模板準備

新建模板,在 A1 單元格添加「文本框控件」,如下圖所示:

image.png

2.2 添加事件

校驗長度可以直接在 JS 中使用固定數字長度,也可以使用參數,給參數一個固定的數字長度。

2.2.1 在 JS 中固定長度

點擊選擇 A1 單元格「文本控件」,在「控件設置>事件」處,添加一個「編輯後」事件,實現校驗功能,如下圖所示:

image.png

JavaScript 代碼如下:

說明:編輯後事件會在每輸入一個字符後觸發,即每輸入一個字符,就對目前文本框的長度進行一次校驗。

var data=this.getValue();
//獲取到單元格的值
var len=data.length;
//判斷值的長度
if(len>7)
{
contentPane.setCellValue("A1",null,data.substr(0,7));
//如果單元格值長度超過7位,就截取前7位重新賦值給文本框
//A1對應報表中,控件所在單元格位置
alert("最長爲7位");//彈窗顯示
}
注:當需要校驗的數據的長度有變化時,修改 JS 中數字校驗長度即可。

2.2.2 通過參數設定長度

1)通過添加參數設定長度,在添加「編輯後」事件前,需先添加一個「模板參數」,如下圖所示,添加參數 maxlen

image.png

2)添加「編輯後」事件, JS 内容需要修改,JS 中不用固定數字長度,使用參數。如下圖所示:

image.png

JavaScript 代碼如下:

var data=this.getValue();
//獲取到單元格的值
var len=data.length;
//判斷值的長度
if(len>Number(maxlen))
{
contentPane.setCellValue("A1",null,data.substr(0,Number(maxlen)));
//如果單元格值長度超過maxlen位,就截取前maxlen位
//A1對應報表中,控件所在單元格位置
alert("最長爲"+Number(maxlen)+"位");
}

2.3 預覽效果

保存模板,選擇填報預覽,效果如 1.1 節所示。

注:不支持移動端。

3. 模板下載

已完成的模板,可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填報預覽JS實例\11-JS實現限制文本框控件文本長度.cpt

點擊下載模板:11-JS實現限制文本框控件文本長度.cpt

注:此模板爲通過參數設定長度的模板。

附件列表


主題: 原簡體文檔
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

9s后關閉

反饋已提交

網絡繁忙