添付ファイルの無し判定

お世話になります。

レコードの登録、編集時に
添付ファイルにデータがなければエラーを出したいと考えています。

 

下のページを参考にしながら、コードを書いてみましたが、

なかなかうまく行きません。

https://developer.cybozu.io/hc/ja/articles/204174194-%E5%BF%85%E3%81%9A%E9%81%B8%E3%82%93%E3%81%A7%E3%82%82%E3%82%89%E3%81%88%E3%82%8B%E3%83%A9%E3%82%B8%E3%82%AA%E3%83%9C%E3%82%BF%E3%83%B3 

 

コードは以下のように書いています。

以上のように書いています。

初歩的な質問で申し訳ありませんが、

ご教授いただけますと幸いです。

よろしくお願いします。

k_chinenさん、こんにちは。

プロジェクト・アスノートの松田です。

各ドキュメントの制限事項に記載がありますように、submit系のイベントで、添付ファイルの情報は取れないとのことです。

https://developer.cybozu.io/hc/ja/articles/201941984#step2
https://developer.cybozu.io/hc/ja/articles/202166270#step2

情報の取得は、保存成功後イベントでREEST APIで取得はできますが、やりたいことは保存前のアラート表示でしょうから、
目的が達成できないことになりますね。

他の方で、いいアイデアをお持ちの方がいればぜひ共有いただけるよう、よろしくお願いします。

 

だいぶ過去にも同様の議論がされていました。参考まで。>こちら

 

Shotaro Matsudaさん

コメントありがとうございます。

制限事項のところに記載されていたんですね…

まったく気が付きませんでした。

ありがとうございます。

 

kintoneの標準機能で、できる添付ファイルを必須項目にする機能を

Javascriptで実装したかったんですが、厳しい感じなんですね。

勉強をさせていただきありがとうございました。

 

k_chinen さん、Shotaro Matsuda さん

項目検証プラグイン開発時にこの問題にぶち当たりまして、結局ファイル項目のDOM 検証でチェックしました。

イベント処理内の event.record には、ファイル項目が反映されていませんが、

直接DOM上で、ファイル項目のリンクタグをチェックするとファイルの有無が分かります。

 

rex0220 さん

コメントありがとうございます!!

DOM上で判定することができるのですね。

ありがとうございます。

現在の自分の技術では厳しそうなので、諦めます。

教えていただきありがとうございました。

 

rex0220さん、

ありがとうございます。その手がありましたね。

 

k_chinenさん

勉強も兼ねて作ってみました。

(function() {
"use strict";
kintone.events.on([
"app.record.create.submit",
"app.record.edit.submit"
], function(event) {

var record = event.record;

// 添付ファイルのファイル名DOM要素の配列数取得
var count = document.getElementsByClassName('plupload_file_name').length;

// ファイル無し=配列数0の場合は添付ファイルフィールドにエラー表示
if (count === 0) {
record['添付ファイル']['error'] = '添付ファイルを登録してください';
}

return event;
});
})();

こんな感じでチェックできるかと思います。

Shotaro Matsudaさん

 

こちらの環境でも同じ動作が確認できました!!

ありがとうございます!!

 

自分に知識がないため申し訳ないのですが、

今回行っている操作はDOMから要素の取得のみで、

objectを非表示にしているわけではないと思うのですが、

その場合はkintone側で仕様が変更された場合でも大丈夫なのでしょうか?

 

k_chinenさん

DOMの要素名(クラス名など)については、kintoneアップデートで変更される可能性も無いとは言えないので、
そのようなアップデートがされた場合は、修正が必要になるかと思います。

 

Shotaro Matsudaさん

 

そこは修正が必要になるんですね。

とても勉強になりました。

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

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。