formbridge 新バージョン

以前のformbridgeでしたら動いていたコードなのですが、今月からの新バージョンでは動かなくなりました。。
出産予定日を入力すると産休開始日を自動表示するものですが、どなたか原因や対処方法をご存じでしたらご教示いただけませんでしょうか。よろしくお願いします。

(function() {

"use strict";
const table = 'いいえテーブル'
const start = '出産予定日_いいえ'
const end = '産休開始日_いいえ'
fb.events.fields[table].fields[start].changed = [function (state, params) {
const date = new Date(params.value)
const endDate = new Date(date.setDate(date.getDate()-56))
state.record[table].value[params.index].value[end].value = endDate
return state;
}];
})();

新バージョンから、ライブラリ利用方法が大幅に変更されてますよね。
下記のページに一応説明が記載されています。
新バージョンのJavascriptカスタマイズ説明ページ

コードのチェックはしていませんが、おそらく下記のようなコードに
変更すれば動作するかと思います。
ご参考に。

(function() {

	"use strict";
	const table = 'いいえテーブル';
	const start = '出産予定日_いいえ';
	const end = '産休開始日_いいえ';

	formBridge.events.on('form.field.change.'+table+'.'+start, function(context){
		const date = new Date(context.value);
		const endDate = new Date(date.setDate(date.getDate()-56));

		context.setSubTableFieldValue( table, end, context.rowIndex, endDate); 

		return;
	});
})();

お返事ありがとうございます!
早速試してみたのですが、あいにく動作しないのです、、、
どのあたりを修正していけばいいでしょうか??

関数名を間違えてました(小文字を大文字で記載)
setSubTableFieldValue ⇒ setSubtableFieldValue
(※誤 Table ⇒ 正 table )

上記でいかがですか?

1 Like

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

form.field.change.(fieldCode).(fieldCodeInTable)の
コンテキストオブジェクトの一覧は見ていたのですが、
不注意で気づくことができませんでした。失礼しました。