You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ServiceNow目录项中设置多行文本变量最小字符长度为50

在ServiceNow目录项多行文本变量中设置最小字符长度限制

要实现多行文本变量的最小50字符限制,避免用户输入无意义短内容,可通过前端客户端脚本实现实时/提交验证,配合后台业务规则防止绕过前端校验,具体操作如下:

一、客户端脚本(前端验证)

方法1:提交时拦截验证(onSubmit)

  1. 打开目标目录项的表单页面,切换到「客户端脚本」标签,点击新建脚本
  2. 配置脚本参数:
    • 类型选择onSubmit
    • 脚本内容(替换your_multi_line_var为你的变量内部名称):
      function onSubmit() {
          var fieldValue = g_form.getValue('your_multi_line_var');
          var validLength = fieldValue.trim().length;
          if (validLength < 50) {
              g_form.addErrorMessage('该字段需输入至少50个字符,请补充详细说明。');
              return false; // 阻止表单提交
          }
          return true;
      }
      
  3. 保存后测试提交,短内容会触发错误提示并拦截提交

方法2:实时输入提示(onChange)

如果需要用户输入时实时反馈,可创建onChange类型的客户端脚本:

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue === '') return;
    var validLength = newValue.trim().length;
    if (validLength < 50) {
        g_form.showFieldMsg('your_multi_line_var', '输入内容不能少于50个字符,请补充信息。', 'error');
    } else {
        g_form.clearFieldMsg('your_multi_line_var');
    }
}

二、业务规则(后台验证,防止绕过前端)

为避免用户通过API等方式绕过前端校验,需添加后台验证:

  1. 导航到「系统定义 > 业务规则」,新建规则
  2. 配置参数:
    • 表选择sc_req_item(请求项目表)
    • 条件设置:目录项 = 你的目标目录项 且 变量.your_multi_line_var.trim().length < 50
    • 触发时机勾选「插入前」「更新前」
  3. 高级脚本内容:
    (function executeRule(current, previous) {
        current.setAbortAction(true);
        gs.addErrorMessage('请在[你的变量显示名称]字段输入至少50个字符的内容。');
    })(current, previous);
    

注意事项

  • 务必使用变量的内部名称(而非显示名称),可在变量表单的「名称」字段查看
  • 可根据业务场景自定义错误提示文案
  • 同时启用前端+后台验证,兼顾用户体验和数据合规性

内容的提问来源于stack exchange,提问作者nand0o

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 09:55:22