我正在尝试做一个带日期的简单页面(输入类型TEXT),一旦输入日期,另一个字段将在输入中添加7天并在文本输入中显示日期(7天).我对jQuery的了解有限,所以我可能有一个小bug …
<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>
我做错了什么?
谢谢!
解决方法
您试图将对象分配给$(‘#end_date’). jQuery通过利用.val(‘value-here’)改变输入框的值来以不同的方式处理这个问题.
试试这个:
$('#start_date').change(function(){ $('#end_date').val(Add7Days()); });
看到这个小提琴:http://jsfiddle.net/zydZ2/
此外,Moment.JS非常适合解析和操作日期,我强烈建议您查看:http://momentjs.com/
希望这可以帮助!