JavaScript のサンプルに誤りがありました

FormBridgeのJavaScriptサンプルにバグ?がありましたので、ご報告です。
JavaScript カスタマイズの説明ページ


form.field.change.(fieldCode).(fieldCodeInTable)
の項にあるサンプルスクリプトにバグがあります。

rowIndex を指定すべきところに ”0” が書かれているので、このままだと先頭行しか正しく処理されません。

ゼロのところを rowIndex に変えると正常に動作します。

サイト上にあるサンプルコードは

formBridge.events.on('form.field.change.subtable.product_category', function (context) {
  const category = context.value;
  const currentRow = formBridge.fn.getRecord().subtable.value[context.rowIndex];
  const expirationDate = currentRow.value.expiration_date.value;
 
  if (category === '食品' && expirationDate === '') {
    context.setSubtableFieldValueError(
      'subtable',
      'expiration_date',
      0,
      '食品の場合は期限を入力してください。'
    );
  } else {
    // エラーメッセージをクリア
    context.setSubtableFieldValueError('subtable', 'expiration_date', 0, null);
  }
});

ですが、これを下のように変更します。

formBridge.events.on('form.field.change.subtable.product_category', function (context) {
  const category = context.value;
  const currentRow = formBridge.fn.getRecord().subtable.value[context.rowIndex];
  const expirationDate = currentRow.value.expiration_date.value;
 
  if (category === '食品' && expirationDate === '') {
    context.setSubtableFieldValueError(
      'subtable',
      'expiration_date',
      context.rowIndex,
      '食品の場合は期限を入力してください。'
    );
  } else {
    // エラーメッセージをクリア
    context.setSubtableFieldValueError('subtable', 'expiration_date', context.rowIndex, null);
  }
});

トヨクモさんの問い合わせページに報告させていただいておりますので、本家サイトが訂正されるまでのご参考に。

「いいね!」 3