如何在servicenow服务门户中向文本字段添加占位符?

时间:2017-10-31 07:19:01

标签: javascript jquery angularjs servicenow

我需要在页面加载的服务门户下的目录项中的文本字段添加占位符,我在目录客户端脚本中尝试使用jquery和angular / document但没有成功,并且发现它不支持任何其他备用soln?

目录客户端脚本:

function onLoad() {


    var elm = angular.element(element.getElementsByClassName("form-control"));
    //when I use angular I get this error:
  

js_includes_sp.jsx?v = 08-28-2017_0947& lp = Mon_Aug_28_11_44_06_PDT_2017& c = 2_42:63808(g_env)[脚本:执行]运行客户端脚本错误"占位符   脚本":TypeError:无法读取属性'元素' null。

 jQuery("#sp_formfield_IO:5cdafd764f02030007b03fb28110c70b").attr("placeholder","hello world");

   // if I use jquery or $jq I get below error
  

(g_env)[脚本:执行]运行客户端脚本"占位符时出错   脚本":TypeError:jQuery不是函数

}

这是在servicenow中生成html的方式:

<span ng-switch-default="true" class="ng-scope">
<!-- ngIf: !field.max_length || 256 > field.max_length -->
<input ng-model="field.stagedValue" ng-change="stagedValueChange()" 
maxlength="" autocomplete="off" name="IO:5cdafd764f02030007b03fb28110c70b" 
id="sp_formfield_IO:5cdafd764f02030007b03fb28110c70b" data-type="string" 
placeholder="" ng-if="!field.max_length || 256 > field.max_length" 
class="form-control ng-pristine ng-untouched ng-valid ng-scope ng-empty ng-
valid-maxlength" ng-model-options="{allowInvalid: true}" ng-
disabled="field.isReadonly()" aria-invalid="false"><!-- end ngIf: 
!field.max_length || 256 > field.max_length --><!-- ngIf: field.max_length 
>= 256 --></span>

enter image description here

2 个答案:

答案 0 :(得分:0)

啊,啊,

简短的回答是,在服务门户中没有可接受的方法。这是因为严格阻止了DOM操作。 但是,更长的答案是确实有一种方法可以在Service Portal中执行此操作。我写了一篇关于它的文章,你可以找到here

您需要该帖子中的CatItemVariables脚本包含,它将目录变量转换为sys_ids。由于UI脚本不在服务门户上运行(即使是全局的脚本,我最后检查过),您还需要创建一个UI脚本并将其设置为JS Include,您将其包含在内。服务门户的主题。 (如何在帖子中详细说明。)

在UI脚本中,您将要使用REST请求和脚本包含来获取cat项变量。

可能还有一种更简单的方法:

  1. 设置文章中提到的脚本包含。
  2. 在onLoad客户端脚本中,使用Script Include通过使用GlideAjax调用客户端可调用脚本包含来获取与目录项关联的所有变量的sys_ID。
  3. 使用对象作为窗口的替换,并记住文档的元素窗口

    this.document.getElementsByName(&#39; IO:&#39; + itemVars [&#39; var_name&#39;])[0];

  4. 在上文中, itemVars 是包含结果目录项变量对象的变量名,&#39; var_name&#39; 是变量名。

    它并没有真正做到你正在寻找的东西,但你也可以考虑&#34;占位符文本&#34;字段字典本身的字典字段。

答案 1 :(得分:-1)

如果您只想为变量填充placeholder而无需动态设置,则可以使用示例文字变量本身的字段。

enter image description here

这将填写为

形式的placeholder

enter image description here