如果我点击其他日期,更改最小日期

时间:2017-07-30 09:24:07

标签: javascript php

<form method="POST" enctype="multipart/form-data">
    CheckIn: <input type="date" name="datein" min="<?php echo date('Y-m-d'); 
    if(!empty($_POST['datein']))
            {
                $get = $_POST['datein'];
            } ?>" max="2030-12-31">
    CheckOut: <input type="date" name="dateout" min="<?php echo $get; ?>" max="2030-12-31">
</form>

我知道这是错误的代码。但我想要的是,如果我点击CheckIn日期,即使我再次点击CheckIn,CheckOut的min也会改变。我认为在javascript中有一个解决方案,但我不知道如何在那里构建代码。

2 个答案:

答案 0 :(得分:0)

在jQuery中,类似于:

$('input[name=datein]').change(function() {
   // TODO Validate the value
   $('input[name=dateout]').attr('min',$(this).val());
});

这将min值设置为datein控件的值。

.prop在这里可能比.attr更好,但我认为其中任何一种都可行。

答案 1 :(得分:0)

以下是适合您的工作演示,并对max进行了验证。日期不应大于max

&#13;
&#13;
$('input[name=datein]').on('change', function() {
  if ($(this).val() < $('input[name=dateout]').attr('max')) {
    console.log('Before: ' + $('input[name=dateout]').attr('min'));
    $('input[name=dateout]').attr('min', $(this).val());
    console.log('After: ' + $('input[name=dateout]').attr('min'));
  } else {
    console.log('Value greater than ' + $('input[name=dateout]').attr('max') + ' not allowed');
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
CheckIn: <input type="date" name="datein" min="" max="2030-12-31"> CheckOut: <input type="date" name="dateout" min="" max="2020-12-31">
&#13;
&#13;
&#13;