# 文字列（複数行）の行数カウントについて助けてほしい

**URL:** <https://community.cybozu.dev/t/topic/4412>\
**Category:** kintone 開発相談\
**Created:** [2019 年 9 月 27 日午前 5:45 UTC](https://community.cybozu.dev/t/topic/4412 "2019-09-27T05:45:51Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1256](https://avatars.discourse-cdn.com/v4/letter/l/ed655f/32.png) [@Legacy\_Account1256](https://community.cybozu.dev/u/Legacy_Account1256)\
**Post date:** [2019 年 9 月 27 日午前 5:45 UTC](https://community.cybozu.dev/t/topic/4412/1 "2019-09-27T05:45:51Z")

</div>

キントーン初心者です。

文字列（複数行）の行数カウントをしたいと思い、他の投稿を参考させていただき、

なんとか見様見真似で作成しております。

以下のコードで動くことは動くのですが、未入力の際に保存ができません。

また、10行を超えるとエラーが出るようにするにはどうすればいいでしょうか。

&nbsp;

本当に初心者で困っております。なんとか助けていただけませんでしょうか？！

&nbsp;

kintone.events.on([‘app.record.create.submit’,‘app.record.edit.submit’,‘app.record.index.edit.submit’], function (event) {  
// 本文に入力された文字数を取得  
var rec = event.record;  
var st = rec[‘textbox’][‘value’]  
var result = 1;

//改行を1文字でカウント  
for (var i = 0; i \< st.length; i++) {  
if (st.charAt(i) === “”) {  
result+=1;  
}  
}

//文字数フィールドに文字数を代入  
rec[‘counterText’][‘value’] = result;

return event;

});

---

<div class="post-metadata">

**Author:** ![Legacy\_Account760](https://avatars.discourse-cdn.com/v4/letter/l/f07891/32.png) [@Legacy\_Account760](https://community.cybozu.dev/u/Legacy_Account760)\
**Post date:** [2019 年 9 月 27 日午前 8:08 UTC](https://community.cybozu.dev/t/topic/4412/2 "2019-09-27T08:08:46Z")

</div>

石田さん

こんにちは！

&nbsp;

textboxフィールドに何も入力されていない場合に保存できないのは、

値がないため、length(文字数) が取れず、参照エラーとなっていると思われます。

&nbsp;

なので、処理を “textboxフィールドに値が入力されていれば行う” ようにすればよいです。

&nbsp;

また、event オブジェクトの errorプロパティに文字列を設定してあげることで、

eventを返す際に画面上部にエラーを出せます！

&nbsp;

上記についても、“result が 10 よりも大きい場合” という条件で処理させるとよいです！

&nbsp;

以下、少しいじってみた処理になります。

参考になれば嬉しいです＾＾

&nbsp;

```
kintone.events.on(['app.record.create.submit','app.record.edit.submit','app.record.index.edit.submit'], function (event) {
// 本文に入力された文字数を取得
var rec = event.record;
var st = rec['textbox']['value']
var result = 1;

//textboxフィールドの値の有無を判定
if(st) {
//改行を1文字でカウント
for (var i = 0; i < st.length; i++) {
if (st.charAt(i) === "") {
result+=1;
}
}
}

//文字数フィールドに文字数を代入
rec['counterText']['value'] = result;

//行数が10よりも多い場合に eventオブジェクトの errorプロパティにメッセージを代入
if(result > 10) {
event.error = "10行を超えてます。";
}

return event;

});

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1256](https://avatars.discourse-cdn.com/v4/letter/l/ed655f/32.png) [@Legacy\_Account1256](https://community.cybozu.dev/u/Legacy_Account1256)\
**Post date:** [2019 年 9 月 30 日午前 12:19 UTC](https://community.cybozu.dev/t/topic/4412/3 "2019-09-30T00:19:36Z")

</div>

文系男様

&nbsp;

早速ご返信いただきありがとうございます。

未入力でも無事に保存できました！！

ただ、１０行を超えてもエラーがでず、保存できました。

どこが原因でしょうか。。ちなみに、他にカスタマイズ等は入れておりません。

&nbsp;

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

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account760](https://avatars.discourse-cdn.com/v4/letter/l/f07891/32.png) [@Legacy\_Account760](https://community.cybozu.dev/u/Legacy_Account760)\
**Post date:** [2019 年 9 月 30 日午前 8:09 UTC](https://community.cybozu.dev/t/topic/4412/4 "2019-09-30T08:09:29Z")

</div>

石田さん

&nbsp;

こんにちは！

&nbsp;

私の環境では、改行コード “” が 11個以上の場合はエラーとなるので、動作の確認方法が違う、

もしくは正常に処理が行われない何かがあると思われます。

&nbsp;

今回、 の数を改行数としており、文字を連続で入力してフィールド上で折り返されても “” は存在しないので、

保存できる状態となります。

ご留意ください。

&nbsp;

動作確認の画面キャプチャか操作手順、適用している JavaScript ファイルの中身を

お知らせいただければ、何か分かるかもしれません。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1256](https://avatars.discourse-cdn.com/v4/letter/l/ed655f/32.png) [@Legacy\_Account1256](https://community.cybozu.dev/u/Legacy_Account1256)\
**Post date:** [2019 年 10 月 1 日午前 12:39 UTC](https://community.cybozu.dev/t/topic/4412/5 "2019-10-01T00:39:42Z")

</div>

文系男 様

&nbsp;

アプリをコピーして新しく作成したら出来ました！！

色々いじり過ぎて自分でもよくわからなくなっていたので、リセットしてやり直してみます！

大変勉強になりました。ありがとうございました！！

&nbsp;

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2025 年 4 月 11 日午前 12:41 UTC](https://community.cybozu.dev/t/topic/4412/6 "2025-04-11T00:41:15Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
