jquery編寫日期選擇器
使用jquery做一個(gè)日期時(shí)間選擇器,最好使用bootstrap彈窗
實(shí)現(xiàn):
(1)點(diǎn)擊文本框彈出窗口;
(2)彈窗里面顯示日期時(shí)間選擇下拉
(3)年份取當(dāng)前年份前后五年
(4)月份固定12個(gè)月
(5)天數(shù)根據(jù)年份與月份的變化而變化
(6)點(diǎn)擊確定,關(guān)閉彈窗,文本框里面的時(shí)間編程選中時(shí)間
1.若是jQuery跟bootstrap彈窗,必須引入文件包;
2.寫一個(gè)文本框,給他id用來(lái)寫事件;
3.去bootstrap里面找到模態(tài)框,復(fù)制,黏上就行了;

4.把模態(tài)框里沒(méi)用的東西去掉,并加上三個(gè)下拉框;
代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無(wú)標(biāo)題文檔</title>
<script src="dist/js/jquery-1.11.2.min.js"></script>
<script src="dist/js/bootstrap.min.js"></script>
<link href="dist/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet" type="text/css" />
</head>
<body>
<!--文本框-->
<input type="text" id="rq"/>
<!--模態(tài)框-->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">日期</h4>
</div>
<div class="modal-body">
<!-- 內(nèi)容-->
<!-- 三個(gè)下拉框-->
<select id="nian"></select>年
<select id="yue"></select>月
<select id="ri"></select>日
</div>
<div class="modal-footer">
<!--確定按鈕加上事件,用來(lái)寫點(diǎn)擊事件-->
<button type="button" class="btn btn-primary" id="queding">確定</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal -->
</div>
</body>
</html>
主頁(yè)的東西都完事了,來(lái)寫js代碼,js代碼可以在script標(biāo)簽里寫,但是為了清晰,且用于日后方便實(shí)用,新建js文件:
5.先讓他的文本框里顯示一下當(dāng)前的時(shí)間吧:
來(lái)寫:
//文本框內(nèi)顯示當(dāng)前時(shí)間:
// 準(zhǔn)備好:
$(document).ready(function(e){
// 來(lái)獲取時(shí)間:
var date = new Date();
//獲取年
var nian = date.getFullYear();
//獲取月,記得加1
var yue = date.getMonth()+1;
//獲取天:
var tian = date.getDate();
//打印,拼接字符串
$("#rq").val(nian+"-"+yue+"-"+tian);
});
記得在主頁(yè)面引用哦!看圖:

6.來(lái)寫文本框的點(diǎn)擊事件吧,讓他點(diǎn)擊文本框的時(shí)候彈出模態(tài)框:
//文本框點(diǎn)擊事件:
$("#rq").click(function(){
// 手動(dòng)打開(kāi)模態(tài)框的方法:找到模態(tài)框的id,根據(jù)Bookstrap里面的方法
$('#myModal').modal('show');
// 執(zhí)行三個(gè)方法
fnian();
fyue();
ftian();
})
這樣當(dāng)我點(diǎn)擊文本框:看圖:

7.點(diǎn)擊確定的事件先不要加,因?yàn)檫€要傳給他東西,先來(lái)寫那三個(gè)方法吧:
// 寫方法,
//加載年份的方法
function Fnian()
{
//先來(lái)取當(dāng)前年份
var date = new Date();
var nian = date.getFullYear();
// 定義個(gè)變量來(lái)接收:
var str = "";
//for循環(huán)走起:
for(var i=nian-5;i<nian+6;i++)
{
//判斷若是當(dāng)前年份,設(shè)為value
if(i==nian)
{
str = str + "<option selected='selected' value='" + i + "'>" + i + "</option>";
}
else
{
//若不是,正常顯示
str = str +"<option value='"+i+"'>"+i+"</option>";
}
}
$("#nian").html(str);
}
//加載月份的方法:
function Fyue()
{
var date = new Date();
//獲取月,記得加1
var yue = date.getMonth()+1;
//先取當(dāng)前月份:
var date = new Date();
var yue = data.getMonth()+1;
// 定義個(gè)變量來(lái)接收:
var str = "";
// for循環(huán)走
for(var i=1;i<13;i++)
{
//判斷若是當(dāng)前月份,設(shè)為value
if(i==yue)
{
str = str+"<option selected='selected' value='"+i+"'>"+i+"</option>";
}
else
{
//若不是,正常顯示
str = str +"<option value='"+i+"'>"+i+"</option>";
}
}
$("#yue").html(str);
// document.getElementById("yue").innerHTML=str;
}
//加載天的方法
function Ftian()
{
//獲取當(dāng)天;
var date = new Date();
var tian = date.getDate();
//把月份與年份取過(guò)來(lái),用于判斷:
var nian = $("#nian").val();
var yue = $("#yue").val();
//設(shè)一個(gè)總數(shù),判斷完成后更改他就好
var zs = 31;
//判斷來(lái)了!
if(yue==4||yue==6||yue==9||yue==11)
{
//若是4.6.9.11月,每月三十天
zs = 30;
}
else if(yue==2)
{
//若是2月,再判斷,是否為閏年
if((nian%4==0 && nian%100!=0) || nian%400==0 )
{
//若是閏年,2月29天
zs = 29;
}
else
{
//否則2月為28天
zs = 28;
}
}
// for循環(huán)搞起
// 定義個(gè)變量來(lái)接收:
var str = "";
//for循環(huán)走起:
for(i=1;i<zs+1;i++)
{
//判斷若是當(dāng)天,設(shè)為value
if(i==tian)
{
str = str + "<option selected='selected' value='" + i + "'>" + i + "</option>";
}
else
{
//若不是,正常顯示
str = str +"<option value='"+i+"'>"+i+"</option>";
}
}
$("#tian").html(str);
}
好。加載年份、月份、天的方法都寫完了,上面已經(jīng)執(zhí)行了,
看下圖:

8.再來(lái)寫確定按鈕的點(diǎn)擊事件:
先給模態(tài)框里面的確定按鈕添加上id吧
<button type="button" class="btn btn-primary" id="queding">確定</button>
設(shè)置好了id,去寫事件:
//最后給確定按鈕加點(diǎn)擊事件
$("#queding").click(function(){
var nian = $("#nian").val();
var yue = $("#yue").val();
var tian = $("#tian").val();
$("#rq").val(nian+"-"+yue+"-"+tian);
$('#myModal').modal('hide');
})
點(diǎn)擊關(guān)閉模態(tài)框,并傳去數(shù)據(jù);
完成圖:

點(diǎn)擊確定:

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
jQuery Validate表單驗(yàn)證深入學(xué)習(xí)
這篇文章主要介紹了jQuery Validate表單驗(yàn)證入門知識(shí),該插件捆綁了一套有用的驗(yàn)證方法,包括 URL 和電子郵件驗(yàn)證,同時(shí)提供了一個(gè)用來(lái)編寫用戶自定義方法的 API,感興趣的小伙伴們可以參考一下2015-12-12
jquery tablesorter.js 支持中文表格排序改進(jìn)
之前研究過(guò)一下表格排序。上網(wǎng)找了一些代碼研究了一下。勉強(qiáng)做了一個(gè)用著。后面發(fā)現(xiàn)當(dāng)動(dòng)態(tài)給單元格加超鏈接,或者列中存在一些空白,就排序不了了。2009-12-12
jQuery-ui引入后Vs2008的無(wú)智能提示問(wèn)題解決方法
引入jQuery-vsdoc文件后,jQuery庫(kù)就能智能提示了,解決方法很簡(jiǎn)單在jQuery-ui的目錄下再加入一個(gè)空的JS文件,命名jquery-ui-vsdoc.js2014-02-02
jQuery插件cxSelect多級(jí)聯(lián)動(dòng)下拉菜單實(shí)例解析
這篇文章主要為大家詳細(xì)解析了jQuery插件cxSelect多級(jí)聯(lián)動(dòng)下拉菜單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
jQuery框架實(shí)現(xiàn)元素顯示及隱藏三種動(dòng)畫方式
在jQuery框架中對(duì)元素對(duì)象進(jìn)行顯示和隱藏有三種方式,分別是“默認(rèn)方式顯示和隱藏”、“滑動(dòng)方式顯示和隱藏”、“淡入淡出顯示和隱藏”,今天就每種方式通過(guò)實(shí)例代碼給大家詳細(xì)講解,需要的朋友參考下吧2021-06-06
jquery中的常見(jiàn)問(wèn)題及快速解決方法小結(jié)
下面小編就為大家?guī)?lái)一篇jquery中的常見(jiàn)問(wèn)題及快速解決方法小結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
jQuery右側(cè)選項(xiàng)卡焦點(diǎn)圖片輪播特效代碼分享
這篇文章主要介紹了jQuery右側(cè)選項(xiàng)卡焦點(diǎn)圖片輪播特效,一段清新可愛(ài)的焦點(diǎn)圖輪播代碼,有需要的小伙伴可以參考下2015-09-09
jQuery ajax請(qǐng)求返回list數(shù)據(jù)動(dòng)態(tài)生成input標(biāo)簽,并把list數(shù)據(jù)賦值到input標(biāo)簽
這篇文章主要介紹了jQuery ajax請(qǐng)求返回list數(shù)據(jù)動(dòng)態(tài)生成input標(biāo)簽,并把list數(shù)據(jù)賦值到input標(biāo)簽的相關(guān)資料,需要的朋友可以參考下2016-03-03

