新規投稿
フォローする

テーブル内のフィールドの文字チェックについて

テーブル内にある「TEL」フィールドに入力された電話番号が10~11桁の
半角英数字でない場合、メッセージを表示するようにしたいと考えています。

そこで以下のコードを試したのですが、テーブル内にあるフィールドだと
動作してくれません。
「TEL」フィールドがテーブル内になければうまく動作しました。

テーブル内のフィールドを指定する場合には、何か追記する必要があるのか
ご教示いただけないでしょうか。

(function() {
    "use strict";
    function telCheck(event) {
        var tel_pattern = /^\d{10,11}$/;
        var rec = event['record'];
        rec['TEL']['error'] = null;
        var tel_value = rec['TEL']['value'];
        if (tel_value) {
            if (tel_value.length > 0) {
                if (!(tel_value.match(tel_pattern))) {
                    rec['TEL']['error'] = '10~11桁の半角数字で入力して下さい';
                }
            }
        }
    }

    kintone.events.on(['app.record.create.change.TEL',
                      'app.record.edit.change.TEL',
                      'app.record.index.edit.change.TEL'], function(event) {
                            telCheck(event);
                            return event;
                        });
    kintone.events.on(['app.record.create.submit',
                      'app.record.edit.submit',
                      'app.record.index.edit.submit'], function(event) {
                            telCheck(event);
                            return event;
                        });
})();
0

2件のコメント

Avatar
村濱一樹

tableの場合ですと、telのフィールドがsubtableの中になるからですね。

 

構造が

record.TEL.valueでなく、

record.SUB_TABLE.value[0].TEL.value

のようになります。

 

下記からフィールドの構造をご確認ください。

https://developer.cybozu.io/hc/ja/articles/202166330-%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E5%BD%A2%E5%BC%8F

0
Avatar
ku

村濱様

ご回答いただきありがとうございます。
ご案内いただいた方法で検証してみたいと思います。

今後とも何卒よろしくお願い申し上げます。

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