我有一个带有jQuery日期选择器的输入字段。因此,当您单击输入字段时,它将显示日历。我还在:after后面插入了一个日历Font Awesome图标。如何使该部分也可以点击并启动jQuery日历?我无法使输入字段的背景透明,因为我需要它是白色的。
"
"SomeWord"
$( function() {
$( "#dateOfBirth" ).datepicker({
numberOfMonths: 2,
dateFormat: 'dd-mm-yy',
maxDate: '0',
minDate: '-18M'
});
});
答案 0 :(得分:1)
单击日历图标时,您可以将输入元素设为焦点。
$( function() {
$( "#dateOfBirth" ).datepicker({
numberOfMonths: 2,
dateFormat: 'dd-mm-yy',
maxDate: '0',
minDate: '-18M'
});
$('.addingCalendar').on("click", function(e){
console.log("clicked");
$('#dateOfBirth').focus();
});
} );
答案 1 :(得分:0)
尝试类似下面的代码片段。而不是在after
伪位置添加fontawesome图标,而是使用jquery写入click
事件。
$('#calendarIcon').click(function() {
alert('calendar icon clicked');
});
#calendarIcon {
position: relative;
z-index: 1;
left: -25px;
top: 1px;
color: #7B7B7B;
cursor: pointer;
width: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" />
<input id="calendar" type="text" placeholder="DD/MM/YYYY" />
<i id="calendarIcon" class="fa fa-calendar"></i>
答案 2 :(得分:0)
不能使伪元素可单击,因为它们不是DOM的一部分。
你可以做的是让包含输入字段的元素( .addingCalendar )触发datepicker而不是( #dateOfBirth )。
$( ".addingCalendar" ).datepicker({
numberOfMonths: 2,
dateFormat: 'dd-mm-yy',
maxDate: '0',
minDate: '-18M'
});
创造了一个小提琴:https://jsfiddle.net/zg45anab/
答案 3 :(得分:0)
对图标使用单独的元素,并使用父包装器
包装输入和图标元素<强> HTML 强>
<div>
<label>Date of Birth : </label>
<div class="input_wrapper">
<input type="search" placeholder="dd-mm-yyyy" name="dateOfBirth" onchange="dateOfBirthCheck();adding28Days();makingSixWeekDate();making40dayDate();" id="dateOfBirth" readonly="true"/>
<span class="addingCalendar addingCalendarIcon fa fa-calendar"></span>
</div>
</div>
<强> CSS 强>
.input_wrapper{
position: relative;
}
.addingCalendarIcon{
position: absolute;
right:0;
top:0;
width: 30px;
height: 30px;
}
<强>的jQuery 强>
$( ".addingCalendarIcon" ).click(function(){
$( "#dateOfBirth" ).trigger("focus");
});