「検索値1」、「検索値2」、「検索値3」
と入力フィールドで入力した値を
後のルックアップフィールドに検索のキーとなる「検索値1&検索値2&検索値3」として、自動入力できる様にしたいと考えています。
自動でルックアップ機能でその他の項目も更新できればなお良いです。
※もちろん参照先のアプリのレコードには「検索値1&検索値2&検索値3」のフィールドは持たせます。
プラグインかJavaScriptのコードご教授頂けないでしょうか。
試しに下記の様なJavaScript書きましたが、動作しませんでした。
おかしいところがあれば、ご教授下さい。
(function() {
"use strict";
// レコードの表示イベント
kintone.events.on('app.record.create.show', function(event) {
// フィールド1とフィールド2の値を取得
var field1 = event.record['フィールド1'].value;
var field2 = event.record['フィールド2'].value;
// フィールド1とフィールド2を結合して検索文字を作成
var searchString = field1 + field2;
// ルックアップフィールドに検索文字を設定
event.record['ルックアップフィールド'].value = searchString;
return event;
});
// フィールド1またはフィールド2が変更されたときのイベント
kintone.events.on(['app.record.edit.change.フィールド1', 'app.record.edit.change.フィールド2'], function(event) {
// フィールド1とフィールド2の値を取得
var field1 = event.record['フィールド1'].value;
var field2 = event.record['フィールド2'].value;
// フィールド1とフィールド2を結合して検索文字を作成
var searchString = field1 + field2;
// ルックアップフィールドに検索文字を設定
event.record['ルックアップフィールド'].value = searchString;
return event;
});
})();
背景が不明なところもありますが、調整してみました。ご参考にどぞ。
(function() {
"use strict";
// レコードの表示イベント
/*
そもそも、表示をした際には本処理する必要が無いのではないか?
フィールド1と2が編集された場合のみで良いのではないだろうか?
*/
kintone.events.on(
'app.record.create.show',//新規の場合
'app.record.edit.show'//編集の場合
, function(event) {
// フィールド1とフィールド2の値を取得
//フィールド1と2に値が見つからなかった時には空文字を入れるようにする。
var field1 = event.record['フィールド1'].value === undefined ? "":event.record['フィールド1'].value;
var field2 = event.record['フィールド2'].value === undefined ? "":event.record['フィールド2'].value;
// フィールド1とフィールド2を結合して検索文字を作成
var searchString = field1 + field2;
// ルックアップフィールドに検索文字を設定
event.record['ルックアップフィールド'].value = searchString;
return event;
});
// フィールド1またはフィールド2が変更されたときのイベント
kintone.events.on([
'app.record.create.change.フィールド1', //新規の場合
'app.record.create.change.フィールド2', //新規の場合
'app.record.edit.change.フィールド1', //追加の場合
'app.record.edit.change.フィールド2', //追加の場合
], function(event) {
// フィールド1とフィールド2の値を取得
var field1 = event.record['フィールド1'].value === undefined ? "":event.record['フィールド1'].value;
var field2 = event.record['フィールド2'].value === undefined ? "":event.record['フィールド2'].value;
// フィールド1とフィールド2を結合して検索文字を作成
var searchString = field1 + field2;
// ルックアップフィールドに検索文字を設定
//連携先のフィールドと一致する値でないとエラーが出る。
event.record['ルックアップフィールド'].value = searchString;
return event;
});
})();
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。