フィールドによって入力方法の制御など出来ませんでしょうか? 例えば、パソコンであれば半角英数、全角ひらがなをフィールドによって切り替えたいです。javascript等記述で対応出来るのであればぜひ教えて頂けると助かります。
gsc-hnd-dad様
お世話になっております.
submit時にバリデーションチェックするのが一般的かと思います.
また,inputmode属性を用いるとデフォルトキーボードの制御も可能です.(ただし,ieなどでは動作しません.)
(function() {
"use strict";
//フィールド情報
var fields = [{
code: '文字列__1行_', //フィールドコード
label: '文字列 (1行)', //フィールド名
pattern: /^[ぁ-んー ]*$/, //入力許可する正規表現パターン(https://murashun.jp/blog/20190215-01.html)
message: '全角ひらがなのみ入力できます.', //エラーメッセージ
inputmode: 'text', //キーボードのモード(https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/inputmode)
}, {
code: '数値',
label: '数値',
pattern: /^[A-Za-z0-9]*$/,
message: '半角英数のみ入力できます.',
inputmode: 'numeric',
}]
//バリデーションチェック
kintone.events.on([
'app.record.create.submit',
'app.record.edit.submit',
], function(event){
fields.forEach(function(field){
if(event.record[field.code].value && !event.record[field.code].value.match(field.pattern)){
event.record[field.code].error = field.message;
}
});
return event;
});
//デフォルトキーボード制御
kintone.events.on([
'app.record.create.show',
'app.record.edit.show',
], function(event){
var getFieldElement = function(fieldName){
return [].find.call(document.getElementsByClassName('control-gaia'), function(element){
return element.getElementsByClassName('control-label-gaia')[0].innerText === fieldName;
});
};
fields.forEach(function(field){
getFieldElement(field.label).getElementsByTagName('input')[0].setAttribute('inputmode', field.inputmode);
});
});
})();
早速ご回答ありがとうございます。
やりたい事としては、デフォルトキーボートの制御になるかと思います。
使用する箇所のフィールドとしては、【開始時刻】【終了時刻】【タスク】(テーブル)となっており、時刻を入力の際PCですと30分単位ですので、半角モードにしたい。
といったところです。
ですのでデフォルトキーボード制御の方法詳しくご教授頂けると幸いです。