在javascript中更改输入类型=日期的属性min

时间:2017-08-20 16:23:21

标签: javascript jquery html asp.net-mvc

我有两个类型为date的输入字段。

<input id="startdate" type="date" min='@DateTime.Now.AddDays(1).ToShortDateString()' onchange="handler(event)" />
<input id="enddate" type="date" min="@DateTime.Now.AddDays(2).ToShortDateString()" onchange="handler(event)" />

我希望在开始日期的选定日期前两天提前结束。到目前为止,我使用脚本添加天并选择属性min。

<script type="text/javascript">
        function handler(e) {
            var someDate = new Date($("#startdate").val());
            document.getElementById("enddate").setAttribute('min', addDays($("#startdate").val(),2));
        }
    </script>

    <script type="text/javascript">
        function addDays(date, days) {
            var result = new Date(date);
            result.setDate(result.getDate() + days);
            return result;
        }
    </script>

这个命题不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用moment.js

<input id="startdate" type="date" min='' />
<input id="enddate" type="date" min="" />

<!-- import moment.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script>
(function(){
  $('#startdate').attr('min', moment().format('YYYY-MM-DD'))

  $('#startdate').on('change', function(e){
    var startDate = $(this).val();
    var endDate = moment(startDate).add(2, 'days').format('YYYY-MM-DD');
    $('#enddate').attr('min', endDate);
  })
})()
</script>