当前位置: 首页 > news >正文

文档在线协同工具ONLYOFFICE教程:如何使用宏突出显示具有特定提示文本的空文本字段

ONLYOFFICE 表单可以轻松收集结构化输入,但空的、非必填字段经常会被忽略。在本篇博文中,我们将演示如何构建一个宏,用于突出显示表单中所有空的、非必填字段,或者仅突出显示包含特定提示文本的字段。

ONLYOFFICE Docs 最新下载

如何使用 ONLYOFFICE 宏突出显示具有特定提示文本的空文本字段

构建宏

1. 检索表单数据和实时表单对象

该宏首先使用 Api.GetDocument() 访问活动文档。然后,我们检索两组信息:

  • 表单数据:使用 doc.GetFormsData(),我们获取所有表单字段的 JSON 表示。此 JSON 包含诸如键、类型、值、提示以及字段是否必填等属性。
  • 活动表单对象:我们使用 doc.GetAllForms() 来检索与这些表单字段对应的活动对象。
    var doc = Api.GetDocument();var forms = doc.GetAllForms();var formsData = JSON.parse(JSON.stringify(doc.GetFormsData()));

2. 可选的基于提示的验证

有时您可能只想检查那些带有特定提示文本的空字段。在我们的宏中,您可以通过切换 checkSpecificTip 变量来启用或禁用此功能。例如,您可能需要只验证提示为“请输入您的第二个地址”的字段。

   // Optional: set to true to check only fields with a specific tip text.var checkSpecificTip = false;var requiredTipText = "Please enter your second address"; // Change this as needed.

3. 循环遍历每个表单字段

然后,该宏会遍历 JSON 数据中的每个表单字段。我们只关注文本表单字段(类型为“text”)。对于每个未标记为必填的文本字段,我们会检查其值是否为空。

forms.forEach(function(form) {if (form.GetFormType() === "textForm") {var key = form.GetFormKey();var required = form.IsRequired()// Find corresponding form data by key.var formData = formsData.find(function(fd) {return fd.key === key;});if (formData) {// A field is considered empty if its value is missing or only whitespace.var isEmpty = !formData.value || formData.value.trim() === "";// Use the live form's GetTip() to get the tip (if available).var tip = form.GetTipText() ? form.GetTipText() : "";var shouldCheck = !checkSpecificTip || (checkSpecificTip && tip.trim() === requiredTipText.trim());if (shouldCheck && isEmpty && !required) {form.SetBorderColor(0,255,127); // spring green border.form.SetBackgroundColor(171, 242, 255); // Light blue background.invalidCount++;}}}});
  • 检查字段值:
    如果字段的 JSON“值”属性缺失或仅存在空格,则该字段被视为空。
  • 提示过滤:
    如果启用了 checkSpecificTip,我们只检查提示与 requiredTipText 匹配的字段。
  • 高亮:
    对于符合条件的字段,我们找到对应的实时表单对象(通过匹配键),并设置春绿色边框和浅蓝色背景。

4.记录结果

最后,宏记录突出显示的空的不需要的文本字段的总数。

console.log("Form Field Validator complete. " + invalidCount + " empty unrequired text field(s) highlighted.");

完整的宏代码

(function () {// Optional: set to true to check only fields with a specific tip text.var checkSpecificTip = false;var requiredTipText = "Please enter your second address"; // Change this as needed.var doc = Api.GetDocument();var forms = doc.GetAllForms();var formsData = JSON.parse(JSON.stringify(doc.GetFormsData()));var invalidCount = 0;forms.forEach(function(form) {if (form.GetFormType() === "textForm") {var key = form.GetFormKey();var required = form.IsRequired()// Find corresponding form data by key.var formData = formsData.find(function(fd) {return fd.key === key;});if (formData) {// A field is considered empty if its value is missing or only whitespace.var isEmpty = !formData.value || formData.value.trim() === "";// Use the live form's GetTip() to get the tip (if available).var tip = form.GetTipText() ? form.GetTipText() : "";var shouldCheck = !checkSpecificTip || (checkSpecificTip && tip.trim() === requiredTipText.trim());if (shouldCheck && isEmpty && !required) {form.SetBorderColor(0,255,127); // spring green border.form.SetBackgroundColor(171, 242, 255); // Light blue background.invalidCount++;}}}});console.log("Form Field Validator complete. " + invalidCount + " empty unrequired text field(s) highlighted.");
})();

此宏会自动检测并高亮显示包含预定义占位符文本的空文本字段,从而节省时间并减少重复工作。我们希望它能够帮助您优化 ONLYOFFICE 表单并提升整体工作流程效率。

相关文章:

  • 基于YOLO的瓷砖缺陷检测系统设计与实现(附数据集+源码)
  • EMB量产首航!炯熠电子引领「线控底盘革命」
  • vue3使其另一台服务器上的x.html,实现x.html调用中的函数,并向其传递数据。
  • react中有哪几种数据结构?分别是干什么的?
  • 水表盘数字显示区域分割数据集labelme格式538张2类别
  • 【知识科普】今天聊聊CDN
  • 【AI Weekly】AI前沿热点周刊(4.21~4.27)
  • GD32F407单片机开发入门(十六)单片机IAP(在应用编程)详解及实战源码
  • 2025汽车制造企业数字化转型路径参考
  • Android Kotlin ViewModel 错误处理:最佳 Toast 提示方案详解
  • 海外App开发进阶:AI驱动的本地化与跨平台高效架构实战
  • 重测序关系矩阵构建方式汇总
  • 【机器学习】朴素贝叶斯
  • PyCharm与Unreal Engine集成进行开发
  • Numpy数组与矩阵——python学习
  • CSS 预处理器与模块化:Sass/LESS 实战技巧
  • 项目实战-贪吃蛇大作战【补档】
  • K8S ConfigMap 快速开始
  • 防静电瓷砖 vs 直铺PVC防静电地板优劣势对比
  • OpenCV 图形API(68)图像与通道拼接函数------垂直拼接两个图像/矩阵的函数concatVert()
  • 新剧|反谍大剧《绝密较量》央一开播,张鲁一高圆圆主演
  • 传智教育连续3个交易日跌停:去年净利润由盈转亏
  • 专访|白俄罗斯共产党中央第一书记瑟兰科夫:只有大家联合起来,才能有效应对当前危机所带来的冲击
  • 安徽铁塔回应“指挥调度中心大屏现不雅视频”:将严肃处理
  • 美官员称与乌克兰会谈富有成效,但仍存重大分歧
  • 鸿蒙智行八大车型亮相上海车展,余承东拉上三家车企老总“直播推销”