2

我正在使用pickadate来选择一个日期。我正在尝试通过单击前一天或第二天按钮来更改所选日期。

    <form method="post">
    <a href="#">previus day</a>
    <input type="text" id="test" data-value="01/11/2017">
    <a href="#">next  day</a>
    <button type="submit">Submit</button>
    </form>

    <script>
    $('#test').pickadate({format: 'dd/mm/yyyy'});
    </script>

这是 jsfiddle 链接:https ://jsfiddle.net/kdoo53vg/41/

我是编程新手。如果你能告诉我如何做到这一点,我将不胜感激。多谢了。

4

2 回答 2

2

您正在使用的库没有内置方法可以跳到下/前几天,但是它确实公开了您可以用来自己创建功能的方法。

单击下一个/上一个按钮,您可以获得当前选定的日期,然后从中添加或减去一天,如下所示:

var picker = $('#test').pickadate({
  format: 'dd/mm/yyyy'
}).pickadate('picker');

$('#previous_day, #next_day').click(function(e) {
  e.preventDefault();
  setDate($(this).data('diff'));
})

function setDate(diff) {
  var date = new Date(picker.get('select').pick);
  var newDate = date.setDate(date.getDate() + diff);
  picker.set('select', newDate)
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/picker.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/picker.date.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/picker.time.js"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/themes/default.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/themes/default.date.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pickadate.js/3.5.6/compressed/themes/default.time.css" />

<form method="post">
  <a href="#" id="previous_day" data-diff="-1">previous day</a>
  <input type="text" id="test" data-value="01/11/2017">
  <a href="#" id="next_day" data-diff="1">next day</a>
  <button type="submit">Submit</button>
</form>

于 2017-10-31T11:24:08.213 回答
0

您必须将click事件添加到前一天/第二天的链接。我不知道这个插件,但是如果有prev/next的功能,你可以使用它。如果没有,您必须从输入中读取日期并将下一个/上一个日期设置为它。

您可以使用 Date 对象获得下一个/上一个日期

var date = new Date(),
    prevDate = date.setDate(date.getDate() - 1),
    nextDate = date.setDate(date.getDate() - 1);
于 2017-10-31T11:15:30.143 回答