新規投稿
フォローする

文字列(複数行)で行数と1行あたりの文字数を制限したい

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

文字列(複数行)で、レコードの編集時に下記の制限を超えると保存ができないようにしたいです。

①1行あたり50文字(全角)

②6行まで

フィールドコード:bikou

JavaScriptで検討しましたが、初心者なので皆目見当もつかない状況です。

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

0

2件のコメント

Avatar
岡崎 光輝

6行かチェックしたのち、50文字以内かをチェックするものです。

(function() {
'use strict';
kintone.events.on('app.record.edit.submit', function(event) {
const field = 'bikou';

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

//改行コード\nで値を分割すると行数に分けることができます。
const row = fieldValue.split('\n');

//配列になっているので長さを出して6より大きければエラーを返す。
if (row.length > 6) {
event.record[field].error = '6行迄です';
return event;
}

//行のそれぞれが配列に格納されているので、繰り返し50字チェック
//超えていればエラーを増やす。
const check = row.reduce((over, value, i) => {
if (value.length > 50) {
over.push(`${i + 1}行目が50文字を超えています。`);
}
return over;
}, []);

//最終的にエラーがあれば、改行コードで連結させてエラーを出す。
if (check.length > 0) {
event.record[field].error = check.join('\n');
}

return event;
});
})();

コード作成代行の掲示板ではないかと存じます。
初心者の方へカスタマイズ作成方法などお教えすることが目的かと
私は認識しております。

まず、文字列複数行の値の仕組みを理解し、
そのうえでJavaScriptでカスタマイズをすることをお勧めいたします。

JS理解者が増えることを願い解説を付けています。

岡崎 光輝により編集されました
1
Avatar
arukata

岡崎光輝様

 

ご回答ありがとうございます。

実装でき、本当に助かりました。

解説も分かりやすく、すごく勉強になります。

掲示板を間違えていたようです・・・ご忠告ありがとうございます。

0
サインインしてコメントを残してください。