jQueryUIにはNice アイコントリガー付きのDatePicker (カレンダーアイコンがカレンダーを開きます。Outlookと同様の動作です)。
一方、 Bootstrap 3の入力グループ は、アイコンを入力フィールドに接続するのに非常に便利です。
どちらかを書き直さずに2つを組み合わせることができますか?
JSFiddle here を作成しました。 "開始日"の場合、jQueryUIアイコントリガーはアクティブではありません。 "終了日"では有効になっています。残念ながら、DatePickerアイコンは終了日の入力グループの外に表示されます。
それで、入力グループの一部としてアイコントリガーを有効にすることは可能ですか("開始日"のように見えますが、"終了日"のように動作します)。
メインアイコントリガーコード:
$("#datepicker-end").datepicker({
showOn: "button",
buttonImage: "img/calendar.gif",
buttonImageOnly: true
});
メイン入力グループコード:
<div class="input-group">
<input type="text" id="datepicker-start" class="form-control" placeholder="Start Date" />
<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
</div>
datepicker
の問題の解決策を探し回って、非常に多くの問題(および10の賛成票)で受け入れられた回答を見てショックを受けました。それは偶発的な副作用によってのみ機能します。
datepicker
アイコンをクリックするたびに修正されたバージョンは次のようになります。
$(document).ready(function() {
$("#datepicker-my").datepicker();
$('#btn').click(function() {
$("#datepicker-my").focus();
});
});
JSFiddle:http://jsfiddle.net/TrueBlueAussie/JHBpd/151/
注:最近では、ショートカットDOM準備完了ハンドラーを使用することが推奨されているため、例は次のようになります。
$(function() {
$("#datepicker-my").datepicker();
$('#btn').click(function() {
$("#datepicker-my").focus();
});
});
HTMLを変更して識別可能なクラスを作成し、フォーカスセレクターを変更して、ボタンに関連する編集ボックスを選択します(同じ入力グループ内)。
JSFiddle:http://jsfiddle.net/JHBpd/260/
$(function() {
$(".datepicker-my").datepicker();
$('.btn').click(function() {
$(".datepicker-my", $(this).closest(".input-group")).focus();
});
});
bootstrapアイコントリガーにjqueryui datepickerを表示したい場合は、ここに解決策があります。 Demo JSFiddle
JS:
$('#btn').click(function(){
//alert('clicked');
$(document).ready(function(){
$("#datepicker-my").datepicker().focus();
});
});
入力フィールドを選択するには、label
属性を持つfor
タグを使用することを好みます。
HTMLラベル要素()は、ユーザーインターフェイスのアイテムのキャプションを表します。コントロール要素を要素内に配置するか、for属性を使用して、コントロールに関連付けることができます。
詳細と例: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label
for
属性の値は、ラベル付け可能なフォーム関連要素のIDになります。 input
。私の理解では、入力はすでに日付ピッカーでトリガーされているため、入力に焦点が当てられます。これで、作業は完了です。
<div class="input-group">
<input type="text" id="datepicker-start" class="form-control" placeholder="Start Date" />
<label class="input-group-addon" for="datepicker-start">
<span class="glyphicon glyphicon-calendar"></span>
</label>
</div>
JSFiddle: https://jsfiddle.net/om01kgk5/1/
$("#checkin").datepicker({
dateFormat: 'dd/mm/yy',
minDate: '0',
changeMonth: true,
numberOfMonths: 1
});
.datedivmng{
float: left;position: relative;
}
.datedivmng .datepicker{
position: relative;width: 87%!important;
cursor: pointer;
}
.datedivmng:after {
/* symbol for "opening" panels */
font-family: 'FontAwesome';
content: "\f073";
color: #329ac4;
font-size: 16px;
text-shadow: none;
position: absolute;
vertical-align: middle;
pointer-events: none;
float: right;
top: 2px;
right: 7px;
}
<div class="datedivmng">
<input type="text" id="checkin" name="checkin" value="" /></div>
以下のブロックはbootstrap 4で動作し、ボタントリガーを提供します(入力focutではありません) 出力
$(function () {
$("#searchTextDOB").datepicker({
showOn: "button",
buttonImageOnly: false,
buttonText: ''
}).next(".ui-datepicker-trigger").addClass("input-group-text btn-light fa fa-calendar-alt").
wrapAll('<div class="input-group-append"></div');
});