Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

添付ファイルを必須化するClient Scriptがうまく動きません

Taiki Soeya
Tera Contributor

お世話になります。

 

下記を参考に、Catalog itemのVariableの値に応じて添付ファイルを必須化するCatalog Client Scriptを組んだのですが、うまく機能しないためご相談させてください。

https://www.servicenow.com/community/developer-forum/onchange-variable-to-make-attachment-mandatory-...

//catalog client script to check for attachement
function onSubmit() {
  
	if((g_form.getValue('<variable name>') == 'yes') && this.document.getElementsByClassName('get-attachment').length == 0) {
		g_form.addErrorMessage(getMessage('attachment_is_mandatory'));

		return false;
	}	
}

※g_form.getValue('<variable name>') == 'yes'の部分の値は変更して実行しています。

 

確認したところ、

this.document.getElementsByClassName('get-attachment')

でエラーが出ているようですが、原因が分かりません。

 

'get-attachment'は何か別の値に変えないといけないのでしょうか。

 

なお、VersionはSandiegoです。

 

1 件の受理された解決策

iwai
Giga Sage

Elementを使った制御は極力やらない方が良いです。様々な方法で利用制限もされています。HTML構造は場合によって変わります、Versionによっても変わります。

変わりに、下記画像のようにフィールド(左側)としてAttachmentは扱えるので、そちらで制御してはどうでしょうか。いつもとおりUI Policyで必須制御できます。

 

iwai_0-1681302214385.png

 

元の投稿で解決策を見る

2件の返信2

iwai
Giga Sage

Elementを使った制御は極力やらない方が良いです。様々な方法で利用制限もされています。HTML構造は場合によって変わります、Versionによっても変わります。

変わりに、下記画像のようにフィールド(左側)としてAttachmentは扱えるので、そちらで制御してはどうでしょうか。いつもとおりUI Policyで必須制御できます。

 

iwai_0-1681302214385.png

 

なるほど、勉強になりました。

 

ご提案いただいた通りフィールドで実装・制御できました。

スクリプト書かずに済んだのでメンテナンスも楽そうです。

ありがとうございました!