Jquery添加日期值文本框

时间:2015-01-19 15:40:55

标签: jquery

$('#date1').change(function() {
$('#date2').val( ($(this).val())+1);
  });

如果我在" date1"文本框例如:" 01/01/15" ,使用此代码的结果" date2"是" 01/01/151"而不是" 02/01/15",我做错了什么?

1 个答案:

答案 0 :(得分:1)

这可能不是最清晰的解决方案,但我认为你想要实现这样的目标:

$(function () {
    $('#date1').change(function () {
        var value = $(this).val(),
            split = value.split('/'),
            day = split[0],
            month = parseInt(split[1]) - 1 // months start counting from 0
            ,
            year = split[2];
        year = lpad(year);
        var date = new Date(Date.UTC(year, month, day));

        // add one day 
        date.setDate(date.getDate() + 1);

        // format final 
        var final = lpad(date.getDate()) + '/' + lpad((date.getMonth() + 1)) + '/' + date.getYear()
        $('#date2').val(final);
    });
});

// add leading zero
function lpad(n) {
    n = (n <= 9) ? "0" + n : n;
    return n;
}

http://jsfiddle.net/b5tx2sa9/3/

只是为了向您展示,在哪里寻找问题。在实际应用程序中,您应该始终(!)使用一个库来处理日期格式,例如: https://stackoverflow.com/a/7022296/2630208 要么: https://stackoverflow.com/a/10119138/2630208 您还必须处理用户输入(验证,格式化,替换)。