使用日期选择器填充日期下拉列表
Posted
技术标签:
【中文标题】使用日期选择器填充日期下拉列表【英文标题】:Populate date dropdown with datepicker 【发布时间】:2014-02-25 13:27:24 【问题描述】:我有一个下拉列表,用户可以在其中选择月/日/年,但是为了让我在 jquery datepicker 中添加的用户更快一些,除了有没有一种方法可以让用户已从日历中选择了自动填充下拉字段的日期? 因为我已经将这些下拉菜单设置为导入我的数据库。
当前下拉菜单
<dd>
<select id="month_of_purchase" name="entry[month_of_purchase]">
<option value="">Month</option>
<option value="1">Jan</option>
<option value="2">Feb</option>
<option value="3">Mar</option>
<option value="4">Apr</option>
<option value="5">May</option>
<option value="6">Jun</option>
<option value="7">Jul</option>
<option value="8">Aug</option>
<option value="9">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<select id="day_of_purchase" name="entry[day_of_purchase]">
<option value="">Day</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select id="year_of_purchase" name="entry[year_of_purchase]">
<option value="">Year</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
</select>
</dd>
当前日期选择器
$(document).ready(function()
$("#datepicker").datepicker();
);
【问题讨论】:
这是你想要的吗?jsfiddle.net/Un7PG/11 有没有办法通过单击图像而不是输入框来显示日历?? 是的,这样做<img src="calendar.jpg" id="datepick" />;
。在 jquery 部分$("#datepick").datepicker();
其实使用什么样的元素并不重要,只要它附加到触发datepicker
就可以了。
我想这就是你想要的。jsfiddle.net/Un7PG/20
【参考方案1】:
$(document).ready(function()
$("#datepicker").datepicker(dateFormat: 'mm-dd-yy',
onSelect: function(dateText, inst)
var mydate= $(this).datepicker("getDate");
$("#month_of_purchase").val(mydate.getMonth()+1);
$("#day_of_purchase").val(mydate.getDate());
$("#year_of_purchase").val(mydate.getFullYear());
);
);
看到它的工作:http://jsfiddle.net/8SYsN/
【讨论】:
【参考方案2】:试试这个方法
JQUERY 代码:
$(document).ready(function ()
$("#tx").datepicker(
buttonImage: 'http://icongal.com/gallery/image/203336/birthday_rose_for_kdc_kdc_rose_love_flower_valentine_rose.png',
buttonImageOnly: true,
changeMonth: true,
changeYear: true,
showOn: 'both'
);
$("#tx").on('change', function ()
var dt = ($(this).val()).split('/');
var mon = dt[0];
var day = dt[1];
var year = dt[2];
$('#month_of_purchase').val(mon).attr("selected", "selected");
$('#day_of_purchase').val(day).attr("selected", "selected");
$('#year_of_purchase').val(year).attr("selected", "selected");
);
);`
HTML 代码:
<input type="hidden" id="tx" />
<select id="month_of_purchase" name="entry[month_of_purchase]">
<option value="">Month</option>
<option value="01">Jan</option>
<option value="02">Feb</option>
<option value="03">Mar</option>
<option value="04">Apr</option>
<option value="05">May</option>
<option value="06">Jun</option>
<option value="07">Jul</option>
<option value="08">Aug</option>
<option value="09">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<select id="day_of_purchase" name="entry[day_of_purchase]">
<option value="">Day</option>
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select id="year_of_purchase" name="entry[year_of_purchase]">
<option value="">Year</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
</select>
现场演示: http://jsfiddle.net/Un7PG/21/
编辑 1:
我所做的唯一修改是,我在选项标签的 value 属性下将日期值从 1,2,3...
转换为 01,02,03......
。
编辑 2:
在图像而非传统文本框上触发日期选择器。
快乐编码:)
【讨论】:
以上是关于使用日期选择器填充日期下拉列表的主要内容,如果未能解决你的问题,请参考以下文章