kintone リッチエディター項目について、PC版とモバイル版で未入力の値が異なっているのでメモ
概要
レコード追加やテーブル行追加時のリッチエディター項目について、PC版とモバイル版で未入力の値が異なっている。
PC版とモバイル版でリッチエディター項目の実装方法が異なっているのが原因と思われます。
JavaScript カスタマイズでリッチエディター項目の未入力の判定を行う場合、PC版とモバイル版のそれぞれの値に対応する必要がある。
イベント | PC | モバイル |
---|---|---|
レコード追加 | "<div><br /></div>" | undefined |
レコード編集 | "<div><br /></div>" または "" | undefined または "<div><br /></div>" |
レコード保存 | "<div><br /></div>" | undefined または "<div><br /></div>" |
テーブル行追加 | "<div><br /></div>" | undefined |
空文字入力 | "<div><br /></div>" | undefined または "<br />" または "<br>" または "<div><br></div>" |
PC版とモバイル版で、交互に追加・編集を行うとリッチエディター項目の未入力の値は、いろいろ遷移する。
リッチエディター項目が下記の値の場合、未入力(表示上)として考えられる。
ただし、いろいろな文字修飾後に空文字とした場合、他のタグが残るケースも考えられる。
- undefined
- ""
- "<div><br /></div>"
- "<div><br></div>"
- "<br />"
- "<br>"
検証用アプリ
リッチエディター項目を配置
検証用JavaScript
pc.js
(function() {
'use strict';
kintone.events.on(['app.record.create.show','app.record.edit.show','app.record.index.edit.show','app.record.create.change.テーブル','app.record.edit.change.テーブル','app.record.create.submit','app.record.edit.submit','app.record.index.edit.submit'], function(event) {
const record = event.record;
console.log('t:'+event.type, record);
return event;
});
})();
.mobile.js
(function() {
'use strict';
kintone.events.on(['mobile.app.record.create.show','mobile.app.record.edit.show','mobile.app.record.index.edit.show','mobile.app.record.create.change.テーブル','mobile.app.record.edit.change.テーブル','mobile.app.record.create.submit','mobile.app.record.edit.submit','mobile.app.record.index.edit.submit'], function(event) {
const record = event.record;
console.log('t:'+event.type, record);
return event;
});
})();