新規投稿
フォローする

エラーを提示後のリセットについて

いつもお世話になっております。

ルックアップ:品名 ; 項目:ルックアップより取得

A項目:日付     ; B項目:A項目より年のみ抽出

☆やりたいこと:

他の計算欄もあって、ユーザーには、先に品名を選択させ、「項目」を埋めたいですが、ユーザーによっては、先にA項目を埋める人がいるので、以下のように制御可能かどうかアドバイス頂きたく投稿させていただきました。

理想な動き:もし先に「A項目」を埋めた場合、①「A項目」にエラーを出し⇒②「品名」を選を択させてから、いったん「A項目」をリセットし、⇒「A項目」を再度入力させる。

コードはちょっと挑戦してみましたが、②「A項目」をリセットさせるところがうまくできなくて、アドバイスいただけると幸いです。何卒よろしくお願い致します。

(function() {
'use strict';

var events = [
'app.record.edit.show',
'app.record.create.show',
'app.record.index.edit.show',
'app.record.detail.show',
"app.record.create.submit","app.record.edit.submit",
'app.record.edit.change.A項目',
'app.record.create.change.A項目',
'app.record.index.edit.change.A項目',];
kintone.events.on(events, function(event) {
var record = event.record;
var date = event.record['A項目']['value'];

if (!record["項目"].value && record["A項目"].value) {
record["A項目"].error = "品名を選択してから、入力してください!";
date === undefined;
}
// 日付が入力されていない場合
if (date === undefined) {
event.record['B項目']['value'] = '';
} else {

// 年-月-日の形式で入っているため、"-"で年に分割
var year = Number(date.split('-')[0]);
event.record['B項目']['value'] = String(year) ;
}

return event;
});
})();
0

8件のコメント

Avatar
TK

こんにちは。

変数にしか適応されてないっぽいですね!

一行追加してみてください!

if (!record["項目"].value && record["A項目"].value) {
record["A項目"].error = "品名を選択してから、入力してください!";
date === undefined;
record["A項目"].value = date; // 追加
}
TKにより編集されました
1
Avatar
柳生

TK 様

いつもお世話になっております。

早速アドバイス頂き、誠にありがとうございます。

追加してみましたが、リセットされなくて。。。

柳生により編集されました
0
Avatar
TK

nullならどうなりますか??

record["A項目"].value = null;
1
Avatar
柳生

TK 様

いつもお世話になっております。

以下のようにしてみましたが、反応ありませんでした(汗)

 if (!record["項目"].value && record["A項目"].value) {
record["A項目"].error = "品名を選択してから、入力してください!";
// date === undefined;
// event. record["A項目"].value = date; // 追加
record["A項目"].value = null;
}
0
Avatar
TK

いろいろ試していただいてすいません!

最初に貼っていただいたコードに、これを追加したらどうでしょうか?

  kintone.events.on(["app.record.create.change.項目", "app.record.edit.change.項目"], function(event) {
const record = event.record;
if(record["品名"].value && record["項目"].value) {
record["A項目"].value = null;
record["A項目"].error = null;
}
return event;
});
1
Avatar
柳生

TK 様

いつもお世話になっております。

再度アドバイス頂き、誠にありがとうございます。

頂いたコードでキャンセルはできましたが、品名をルックアップで取得後、A項目の入力ができなくなってしまいました。

0
Avatar
TK

あら、ほんとですか。。。

一応確認として、このコードでやってますがどうでしょうか?

(function() {
'use strict';

var events = [
'app.record.edit.show',
'app.record.create.show',
'app.record.index.edit.show',
'app.record.detail.show',
"app.record.create.submit","app.record.edit.submit",
'app.record.edit.change.A項目',
'app.record.create.change.A項目',
'app.record.index.edit.change.A項目',];
kintone.events.on(events, function(event) {
var record = event.record;
var date = event.record['A項目']['value'];
record.項目.disabled = false;

if (!record["項目"].value && record["A項目"].value) {
record["A項目"].error = "品名を選択してから、入力してください!";
date === undefined;
}
// 日付が入力されていない場合
if (date === undefined) {
event.record['B項目']['value'] = '';
} else {

// 年-月-日の形式で入っているため、"-"で年に分割
var year = Number(date.split('-')[0]);
event.record['B項目']['value'] = String(year) ;
}

return event;
});

kintone.events.on(["app.record.create.change.項目", "app.record.edit.change.項目"], function(event) {
const record = event.record;
if(record["品名"].value && record["項目"].value) {
record["A項目"].value = null;
record["A項目"].error = null;
}
return event;
});

})();
1
Avatar
柳生

TK 様

いつも大変お世話になっております。

確認が遅くなって大変申し訳ございません。動きました!ご親切に教えていただき、誠にありがとうございます。

とても勉強になりました。今後ともどうぞよろしくお願い致します。

 

1
ログインしてコメントを残してください。