新規投稿
フォローする

フォームブリッジでの入力制限(文字列複数行)

お世話になります。

kViewerとフォームブリッジを用いてkintoneのレコードを編集するものを作成しており、

フォームブリッジの入力欄(文字列複数行)で行数と文字数を制限したいと考えています。

6行以上、各行で50文字を超える時は登録ボタンを押しても完了ページに移行しないようにしたいです。

kintone上で適用できるコードを編集してみたのですが、どのような条件でも登録できてしまいます。(コンソール上ではエラーが確認できませんでした)

(function() {
'use strict';
fb.events.form.submit = [function (state) {
const field = 'bikou';

const fieldValue = state.record[field].value;

    if(fieldValue){

const row = fieldValue.split('\n');

if (row.length > 6) {
state.record[field].error = '6行迄です';
return state;
}

const check = row.reduce((over, value, i) => {
if (value.length > 50) {
over.push(`${i + 1}行目が50文字を超えています。`);
}
return over;
}, []);

if (check.length > 0) {
state.record[field].error = check.join('\n');
}

return state;
}}];
})();

ご助言いただければ幸いです。

よろしくお願いいたします。

0

2件のコメント

Avatar
江田篤史

arukataさん

お世話になっております。

kintoneのようにerrorプロパティを記述するのではなく、フォームブリッジの場合はstate.fields[].validations[]にバリデーションルールを足していきます。

下記リンクのValidationという箇所がドキュメントになります。
https://formbridge.kintoneapp.com/help/customize

また、下記記事などがわかりやすい解説になっているかと思います。
https://qiita.com/nacho0707/items/f03b54da19ebc1981a0e

0
Avatar
arukata

江田様

お世話になります、アドバイスありがとうございます。

フォームブリッジのページを拝見するとバリデーションルールがいくつか書いていたのですが、

このルールに該当しないものはカスタムしなければならない認識でよろしかったでしょうか?

今回は行数の制限(6行以内)、1行あたりの文字数(50文字以内)両方とも必要なように思いました。

色々と調べてみたのですが、JavaScriptは素人なのでどうカスタムすればいいか想像ついていません・・・

もし可能であればどのようなコードになるかご教示いただけないでしょうか?

お忙しい中、申し訳ございませんが宜しくお願い申し上げます。

0
サインインしてコメントを残してください。
このトピックでは、新しいコメントの受付を中止しています。