BootstrapでDatetimePickerを使う時のモバイルキーボード非表示
やりたかったこと
モバイル向けのWebアプリで、アイコンをタップするとカレンダーや時刻の入力を直感的に入力できるようにしたい。
※WebアプリはGAS、ブラウザはiOS版Chromeにて動作確認しています。
実装と問題点
Bootstrap4+DatetimePicker(Tempus Dominus Bootstrap 4)で実装1。
動作はするものの、折角追加したカレンダーがモバイルのタッチキーボードで隠れてしまう。見栄え、操作性の両面で非表示にしたい。
inputをreadonlyに
inputをreadonlyにすると、フォーカスを抑えられるのでタッチキーボードは表示されなくなった。
<input type="text" class="datetimepicker-input form-control" data-target="#datetimepicker1" readonly="readonly" />`
と思ったら、DatetimePickerのイベントまで発火しなくなっていただけだった。
DatetimePickerのOptions
公式ドキュメント2 によると、対象のinputがreadonlyである場合、OptionsにignoreReadonlyを設定してやる必要があるとのこと。フォーマットなどと一緒に ignoreReadonly: true
を定義します。
$(function(){
$('#datetimepicker1').datetimepicker({
format: 'YYYY/MM/DD (ddd)',
locale: 'ja',
ignoreReadonly: true
});
});
readonly部品の背景色変更
当初のデザイン通りにしたいので、inputの背景色を白に戻します。
Bootstrapで定義されている.form-control[readonly]
に対して、background-color
を上書きします。
.form-control[readonly]{
background-color: #fff;
}
※ここでbackground: #fff;
と記述してしまうと、表示結果が変わります。Bootstrapが.form-control
に定義していたbackground
のプロパティが全てリセットされた上でbackground-color: #fff;
だけが再定義されることになる(と思う)ので、注意してください。
参考にさせて頂いたURLは注釈にて記載いたします。
Author And Source
この問題について(BootstrapでDatetimePickerを使う時のモバイルキーボード非表示), 我々は、より多くの情報をここで見つけました https://qiita.com/tetra-sol/items/1db3636df1b06b1b2404著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .