お世話になっております。
電話番号のハイフンなしの登録をするために、文字列項目で
【電話番号】【電話検索用】【電話番号2】【電話検索用2】という項目を作成しました。
【電話番号】【電話番号2】にはハイフンありで入力し、
【電話検索用】【電話検索用2】には【電話番号】【電話番号2】の値をもとにハイフンなしで登録をしたいです。
【電話番号】【電話番号2】の両方に値が入力されているときには正常に動作するのですが、
【電話番号2】が未入力の場合には保存ボタンを押しても何も反応しません。
条件分岐でifを追加したのですが、それでも何も反応しません。
修正箇所などをご教授いただけると幸いです。
※【電話番号】は必須入力にしているので、未入力になることはありません。
jQuery.noConflict();
(function($) {
"use strict";
/**
* 電話・FAX番号のハイフンを削除して登録する
*/
kintone.events.on('app.record.edit.submit', function(event) {
var record = event.record;
var TEL = record.電話番号.value.replace(/-/g,'');
var TEL2 = record.電話番号2.value.replace(/-/g,'');
if(record.電話番号.value !== ''){
record.電話検索用.value = TEL;
}
if(record.電話番号2.value !== ''){
record.電話検索用2.value = TEL2;
}
return event;
})
})(jQuery);
var TEL2 = record.電話番号2.value.replace(/-/g,'');
で
Uncaught TypeError: Cannot read properties of undefined (reading ‘replace’)
とコンソール画面に表示されました。
空のときにreplaceを使用としているからのようです。
if(record.電話番号2.value !== ''){
は、空白かどうかはチェックできますが、
console.log(record.電話番号2.value)
してみると undefined でした。
const kintonevalue = undefined;
if (kintonevalue !== "") {
console.log("undefinedと空は同じではありません");
} else {
console.log("undefinedと空は同じ");
}
"undefinedと空は同じではありません"
と表示されました。
(function ($) {
'use strict';
/**
* 電話・FAX番号のハイフンを削除して登録する
*/
kintone.events.on('app.record.edit.submit', function (event) {
const record = event.record;
const TEL = record.電話番号.value;
const TEL2 = record.電話番号2.value;
if (TEL) {
record.電話検索用.value = TEL.replace(/-/g, '');
}
if (TEL2) {
record.電話検索用2.value = TEL2.replace(/-/g, '');
}
return event;
});
})();
harada様
お世話になっております。
修正したコードのご提示ありがとうござます!
undefinedと空の違いがあるのですね。
勉強になりました。
提示いただいたコードを一部修正し、電話番号2に値がない場合は""をセットするようにいたしました。
おかがで、無事に望む機能を実装することができました。
ありがとうござます。
(function ($) {
"use strict";
/**
* 電話・FAX番号のハイフンを削除して登録する
*/
kintone.events.on("app.record.edit.show", function (event) {
const record = event.record;
const TEL = record.電話番号.value
const TEL2 = record.電話番号2.value
if (TEL) {
record.電話検索用.value = TEL.replace(/-/g, "");
}
if (TEL2) {
record.電話検索用2.value = TEL2.replace(/-/g, "");
}else{
record.電話検索用2.value = "";
}
return event;
});
})();
記載し忘れました。
kintone.events.on("app.record.edit.show",function (event) {
の部分、edit.showだけでよいのかは念のためご確認ください。
harada様
ご指摘ありがとうございます。
edit.showとしたのは動作確認しやすいので、そうしておりました。
実際にはレコード追加時とレコード編集保存時に今回の内容を設定しております!
system
(system)
Closed
6
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。