半岛权威十大直营(官方)网站

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

翻译|使用教程|编辑:吉炜炜|2025-04-28 13:34:26.390|阅读 29 次

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

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

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 表单并提升整体工作流程效率。

————————————————————————————————————————

关于慧都科技:

慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技ONLYOFFICE在中国的官方授权代理商,提供ONLYOFFICE系列产品免费试用,咨询,正版销售等于一体的专业化服务。ONLYOFFICE是文档在线编辑领域的优秀产品,帮助企业实现高效的文档协同处理。

下载|体验更多ONLYOFFICE产品咨询,或拨打产品热线:023-68661681


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP