在jQuery和Datepicker的帮助下,我想将#个月份添加到“今天的日期”中。

我在下面的尝试产生了意外的结果:

例如
如果我加0个月,则除今天的日期外还有9个月
如果我加1个月,我将再加10个月。

我已经逐步执行了代码,似乎错误与格式化有关。
如果我硬编码:

var ten = $('#mthschange').val();




var ten = 12;


它工作正常

如果我测试:

var ten = $('#mthschange').val();
alert(ten);


它将提醒我:12(如果我输入12)。

它似乎与数据类型有关。

如何正确指示Datepicker向日期添加月份?



$(function() {
  $('#mthschange').change(function() {
    var ten = $('#mthschange').val();
    var d = new Date();
    d.setMonth(d.getMonth() + ten);
    var e = ($.datepicker.formatDate('yy-mm-dd', d));
    $("#res").val(e);
  });
});

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Default functionality</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>Input Field : <input id="mthschange" type="text"></p>
<p>Output Field : <input id="res" type="text"></p>
</body>
</html>

最佳答案

您的问题是ten是字符串,而不是整数,因此在执行时

d.getMonth() + ten


您会得到类似112而不是13的信息。更改

var ten = $('#mthschange').val();




var ten = parseInt($('#mthschange').val());


和代码工作正常:



$(function() {
  $('#mthschange').change(function() {
    var ten = parseInt($('#mthschange').val());
    var d = new Date();
    d.setMonth(d.getMonth() + ten);
    var e = ($.datepicker.formatDate('yy-mm-dd', d));
    $("#res").val(e);
  });
});

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Default functionality</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>Input Field : <input id="mthschange" type="text"></p>
<p>Output Field : <input id="res" type="text"></p>
</body>
</html>

关于javascript - jQuery:向Datepicker添加月份,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60031249/

10-12 12:34
查看更多