jQuery 单击图标时的日期选择器
jQuery datepicker on click of icon
我想在单击输入字段内的 FontAwesome 图标时显示 jQuery 日期选择器。下面是代码:
<div class="col-md-4 col-sm-4 col-xs-12">
<label for="datepicker">Date of birth*</label>
<input type="text" name='datepicker' class="form-control" value="Select date" id="datepicker" ng-required="true" placeholder="MM/DD/YYYY" >
<span class="fa fa-calendar"></span>
</div>
jQuery('.fa-calendar').on('click' , function() {
jQuery(this).datepicker().trigger('focus');
});
您想触发输入框上的日期选择器,而不是图标,所以您需要更改
jQuery(this).datepicker().trigger('focus');`
成为
jQuery("#datepicker").datepicker().trigger('focus');
您可以使用日期选择器上的 'open'
设置以编程方式打开它。无需触发 focus
事件。您还需要在 #datepicker
元素而不是单击的图标上调用 datepicker()
方法。试试这个:
jQuery(function($) {
$('#datepicker').datepicker();
$('.fa-calendar').on('click', function() {
$('#datepicker').datepicker('open');
});
});
HTML
<div class="col-md-4 col-sm-4 col-xs-12">
<label for="datepicker">Date of birth*</label>
<input type="text" name='datepicker' class="form-control" value="Select
date" id="datepicker_val" ng-required="true" placeholder="MM/DD/YYYY" >
<span class="fa fa-calendar"></span>
</div>
JS
jQuery(".fa-calendar").datepicker();
这就是你想要做的。它会起作用,您可以在您的输入类型中填写日期,如下所示。
jQuery(".fa-calendar").datepicker().on('changeDate', function(ev){
jQuery("#datepicker_val").val(ev.date.valueOf());
}
});
试试这个
$(document).ready(function() {
$("#datepicker").datepicker();
$('.fa-calendar').click(function() {
$("#datepicker").focus();
});
});
- 只初始化一次日期选择器
示例如下
$(document).ready(function() {
$("#datepicker").datepicker();
$('.fa-calendar').click(function() {
$("#datepicker").focus();
});
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="col-md-4 col-sm-4 col-xs-12">
<label for="datepicker">Date of birth*</label>
<input type="text" name='datepicker' class="form-control" value="Select date" id="datepicker" ng-required="true" placeholder="MM/DD/YYYY" >
<span class="fa fa-calendar"></span>
</div>
$( function() {
$( "#datepicker" ).datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
buttonText: "icono",
showOn: "both"
});
} );
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Icon trigger</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<p>Date: <input type="text" id="datepicker"></p>
</body>
</html>
<script>
$(document).on('click',".calendar",function(){
$("#datepicker").datepicker("show");
});
</script>
jQuery('.fa-calendar').on('click' , function() {
event.preventDefault();
$('#startdate').click();
});
希望这会奏效...!!
我想在单击输入字段内的 FontAwesome 图标时显示 jQuery 日期选择器。下面是代码:
<div class="col-md-4 col-sm-4 col-xs-12">
<label for="datepicker">Date of birth*</label>
<input type="text" name='datepicker' class="form-control" value="Select date" id="datepicker" ng-required="true" placeholder="MM/DD/YYYY" >
<span class="fa fa-calendar"></span>
</div>
jQuery('.fa-calendar').on('click' , function() {
jQuery(this).datepicker().trigger('focus');
});
您想触发输入框上的日期选择器,而不是图标,所以您需要更改
jQuery(this).datepicker().trigger('focus');`
成为
jQuery("#datepicker").datepicker().trigger('focus');
您可以使用日期选择器上的 'open'
设置以编程方式打开它。无需触发 focus
事件。您还需要在 #datepicker
元素而不是单击的图标上调用 datepicker()
方法。试试这个:
jQuery(function($) {
$('#datepicker').datepicker();
$('.fa-calendar').on('click', function() {
$('#datepicker').datepicker('open');
});
});
HTML
<div class="col-md-4 col-sm-4 col-xs-12">
<label for="datepicker">Date of birth*</label>
<input type="text" name='datepicker' class="form-control" value="Select
date" id="datepicker_val" ng-required="true" placeholder="MM/DD/YYYY" >
<span class="fa fa-calendar"></span>
</div>
JS
jQuery(".fa-calendar").datepicker();
这就是你想要做的。它会起作用,您可以在您的输入类型中填写日期,如下所示。
jQuery(".fa-calendar").datepicker().on('changeDate', function(ev){
jQuery("#datepicker_val").val(ev.date.valueOf());
}
});
试试这个
$(document).ready(function() {
$("#datepicker").datepicker();
$('.fa-calendar').click(function() {
$("#datepicker").focus();
});
});
- 只初始化一次日期选择器
示例如下
$(document).ready(function() {
$("#datepicker").datepicker();
$('.fa-calendar').click(function() {
$("#datepicker").focus();
});
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="col-md-4 col-sm-4 col-xs-12">
<label for="datepicker">Date of birth*</label>
<input type="text" name='datepicker' class="form-control" value="Select date" id="datepicker" ng-required="true" placeholder="MM/DD/YYYY" >
<span class="fa fa-calendar"></span>
</div>
$( function() {
$( "#datepicker" ).datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
buttonText: "icono",
showOn: "both"
});
} );
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Icon trigger</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<p>Date: <input type="text" id="datepicker"></p>
</body>
</html>
<script>
$(document).on('click',".calendar",function(){
$("#datepicker").datepicker("show");
});
</script>
jQuery('.fa-calendar').on('click' , function() {
event.preventDefault();
$('#startdate').click();
});
希望这会奏效...!!