如何使用其他日期输入字段将日期设置为输入字段?

时间:2014-12-19 11:28:54

标签: javascript jquery datepicker

我有两个输入字段 fromDate toDate (都是日期)。我使用datepicker作为输入字段fromDate。 toDate是readonly并且依赖于fromDate。那么toDate的日期是6 +。例如,如果fromDate是11/30/2014那么toDate是12/6/2014。

我的jsp代码是

 <input type="text" class="form-control dpd1" id="fromDate" name="fromDate">
    <span class="input-group-addon">To</span>
     <input type="text" class="form-control dpd2" id="toDate" name="toDate" readonly/>

和js代码是:$('.dpd1').datepicker();

由于

4 个答案:

答案 0 :(得分:1)

你可以用jQuery和change()来做到这一点。在更改中,您可以获得fromDate的值,并使用Date对象为toDate输入创建新值。

$(function() {
    $('#fromDate').change(function() {
        var fromDateValue = $(this).val();
        var toDateValue = new Date();

        // some operations

        $('#toDate').val(yourToDate);
    });
})

您可以添加6天:

var today = new Date();
var todayplus6days= new Date(today);
todayplus6days.setDate(today.getDate()+6);

<强>更新

jsFiddle:http://jsfiddle.net/8dx0sLey/1/

$(function() {
    $('#fromDate').change(function() {
        var fromDateValue = $(this).val();
        var toDateValue = new Date(fromDateValue);

        toDateValue.setDate(toDateValue.getDate()+6);

        var sDate = toDateValue.getFullYear() + '-' + (toDateValue.getMonth()+1) + '-' + toDateValue.getDate();

        $('#toDate').val(sDate);
    });
})

答案 1 :(得分:1)

我认为你正在寻找这个。

 $("#from").datepicker({
        onClose: function (selectedDate, instance) {
            if (selectedDate != '') { //added this to fix the issue
                $("#to").datepicker("option", "minDate", selectedDate);
                var date = $.datepicker.parseDate(instance.settings.dateFormat, selectedDate, instance.settings);
                date.setDate(date.getDate() + 6);
                console.log(selectedDate, date);
                $("#to").datepicker("option", "minDate", date);
            }
        }
    });

答案 2 :(得分:0)

我尝试使用输入类型日期:


http://jsfiddle.net/washington_guedes/dafbz0qo/


$(document).ready(function(){

    $("#fromDate").on("blur", function(){

        var year = parseInt( $(this).val().substring(0,4) );
        var month = parseInt( $(this).val().substring(5,7) );
        var day = parseInt( $(this).val().substring(9,11) );

        month += 6;
        if( month > 12){
            month %= 12;
            year++;
        }

        $("#toDate").val(year + "-" +
              ((month<10)?"0":"") + 
              month + "-" + 
              ((day<10)?"0":"") + day);

    });

});

答案 3 :(得分:0)

代码:

$('#fromDate').datepicker();
$('#fromDate').change(function(){
    var toDate = new Date($(this).val());
    toDate.setDate(toDate.getDate()+6);
    month  = toDate.getMonth()+ 1;
    year = toDate.getFullYear();
    $('#toDate').val(month+'/'+toDate.getDate()+'/'+year );
});

Demo