添付ファイルを必須化する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

 

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

 

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

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

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