jQuery 添加 7 天至今(输入和输出类型文本)

新手上路,请多包涵

我正在尝试做一个简单的页面,它需要一个日期(输入类型 TEXT),一旦输入日期,另一个字段将向输入添加 7 天并在文本输入中显示日期(+7 天)。我对 jQuery 的了解有限,所以我可能有一个小错误……

 <html>
<head>
<title>Date Plus 7 Days</title>
<script type="text/javascript">
$(document).ready(function(){
    function DateFromString(str){
        str = str.split(/\D+/);
        str = new Date(str[2],str[0]-1,(parseInt(str[1])+7));
        return MMDDYYYY(str);
    }
    function MMDDYYYY(str) {
        var ndateArr = str.toString().split(' ');
        var Months = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec';
        return (parseInt(Months.indexOf(ndateArr[1])/4)+1)+'/'+ndateArr[2]+'/'+ndateArr[3];
    }

    function Add7Days() {
        var date = $('#start_date').val();
        var ndate = DateFromString(date);
        return ndate;
    }

    $('#start_date').change(function(){
        $('#end_date') = Add7Days();
    })

});

</script>
</head>
<body>

Start Date
<input type="text" id="start_date" value=''>
<br>
End date
<input type="text" id="end_date" value=''>

</body>
</html>

我做错了什么?

谢谢!

原文由 Gal Appelbaum 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 311
2 个回答

您已尝试将对象分配给 $('#end_date') 。 jQuery 通过利用 .val('value-here') 改变输入框的值以不同的方式处理这个问题

尝试这个:

 $('#start_date').change(function(){
    $('#end_date').val(Add7Days());
});

看到这个小提琴: http://jsfiddle.net/zydZ2/

此外,Moment.JS 非常适合解析和操作日期,我强烈建议您查看:http: //momentjs.com/

希望这可以帮助!

原文由 Kyle Muir 发布,翻译遵循 CC BY-SA 3.0 许可协议

可以通过使用来实现在现有日期上添加 7 天的功能

var today_date = new Date()
alert(today_date)
today_date.setDate(today_date.getDate() + 7)
alert(today_date)

这将在现有日期的基础上增加 7 天,如果它是 31 天,那么它将成为下个月的 7 日

希望这有帮助

原文由 Alok Agarwal 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏