2016-12-31 36 views
0

如何在jquery datepicker中實現這種效果?Datepicker - 按日期激活一週

我點擊該項目(例如。文本框),其中包含格式爲2016-12-28的日期。 給定日期的例子是星期三。

我想點擊打開一個小日曆(日期選擇器),其中活動的 從星期一到星期五隻包含這個日期的日子。

+3

其中jQuery的日期選擇器? – charlietfl

+1

是的,如果您使用特定的插件,請列出它,我將調整解決方案。謝謝! – godfathr

回答

0

我調整了回答也得到了週五在給定日期的一週:JavaScript - get the first day of the week from current date

首先,獲得一和週五的日期在文本框中的日期。然後設置日期選擇器的最大和最小日期。

見我上JS Fiddle

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 

<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css"> 
<input type="text" id="tbDate" class="datepicker" value="2016-12-28" /> 

<script type="text/javascript"> 
$(document).ready(
    function() { 

    //GET THE DATE FROM THE TEXT BOX 
    var placeholder = $("#tbDate").val(); 
    //MAKE A DATE FROM THE TEXT BOX VALUE 
    d = new Date(placeholder); 

    //MAKE THE TEXT BOX A DATE PICKER 
    $(".datepicker").datepicker({ 
     minDate: x(d), //SET THE MIN ALLOWED DATE FOR YOUR DATE PICKER 
     maxDate: y(d), //SET THE MAX ALLOWED DATE FOR YOUR DATE PICKER 
     numberOfMonths: 2, 
     beforeShowDay: $.datepicker.noWeekends, 
     dateFormat: 'yy-mm-dd' 
    }); 
    }); 

//FIND THE DAYS OF WEEK DESIRED FOR THE WEEK OF GIVEN DATE 
function x(d) { 
    var date = new Date(d); 
    if (date.getDay() > 0) { 
    date.setDate(date.getDate() - (date.getDay() - 1)); 
    return date; 
    } else { 
    return date; 
    } 
} 

function y(d){ 
    var date = new Date(d); 
    if (date.getDay() < 6) { 
    date.setDate(date.getDate() + ((6 - date.getDay()))); 
    return date; 
    } else { 
    return date; 
    } 
} 


</script> 
+0

你怎麼知道OP甚至使用什麼插件? – charlietfl

+0

我不知道。我想我應該問。但聽起來他不知道如何將日期選擇器添加到文本框中,也沒有設置其選項。我只是假設開箱即用的jQuery-UI和JS將爲他提供一個可用的解決方案。 – godfathr

+0

我更新了腳本以解決如果星期幾爲0(星期日)的情況下,通過使最大日期小於最短日期來破壞腳本的問題。 – godfathr

0

我嘗試這樣的解決方案:

$('.oz_m_data').click(function() { 
//GET THE DATE FROM THE TEXT BOX 
var placeholder = $(this).val();  
//MAKE A DATE FROM THE TEXT BOX VALUE 
d = new Date(placeholder); 

//MAKE THE TEXT BOX A DATE PICKER 
$(this).datepicker({ 
    minDate: x(d), //SET THE MIN ALLOWED DATE FOR YOUR DATE PICKER 
    maxDate: y(d), //SET THE MAX ALLOWED DATE FOR YOUR DATE PICKER 
    numberOfMonths: 1, 
    beforeShowDay: $.datepicker.noWeekends, 
    dateFormat: 'yy-mm-dd' 

}).datepicker("show"); 
+0

如何改變noWeekends爲「只有週末的日子」? – Rafik73

相關問題