jQuery datepicker基于另一个datepickers值

时间:2019-02-25 10:15:41

标签: jquery datepicker jquery-ui-datepicker

我的页面上有一个带日期选择器的文本框。最初只有一个,但是可以动态添加更多。设置第一个日期选择器,以便用户不能选择今天之前的日期,而可以选择将来的任何日期。

如何设置下一个日期选择器,使用户无法选择在前一个日期选择器中选择的日期之前的日期?例如:如果今天是2019年2月25日,而我在第一个日期选择器中选择了01.03.2019,则第二个日期选择器将不能在2019年3月1日之前选择任何内容。

如果我在第二个日期选择器中选择了10.03.2019,则下一个生成的日期选择器应该不能在2019年3月10日之前选择任何内容。

这里是我到目前为止的内容:

var UserChoice = window.prompt("Do you choose rock, paper or scissors ?");

var computChoice = Math.random();

var computChoice = computChoice < 0.34 ? "rock" : ( computChoice > 0.67 ? "scissors" : "paper" ) ;

var mess = { 
  rock : { scissors : 'You Win!, Rock smashes scissors!', paper : 'You lose!, Paper covers rock!'} ,
  paper : { rock : 'You Win!, Paper covers rock!', scissors : 'You lose!, Scissors cut paper!' },
  scissors : { paper : 'You Win!, Scissors cut paper!', rock : 'You lose!, Rock smashes scissors!' }
}

if ( computChoice === UserChoice)
  result = "It's a tie!" ; 
	 
else if ( UserChoice !== "rock" && UserChoice !== "paper" && UserChoice !== "scissors" )
  result = "Invalid choice! Choose from rock, paper, or scissors" ;

else
  result = mess[UserChoice][computChoice] ;

console.log( 'you chose ' + UserChoice + ' and computer chose ' + computChoice + ' ( ' + result + ' ) ') ;

但它不会在console.log调用中带回任何值

1 个答案:

答案 0 :(得分:0)

如果我了解您的目标,那么这就是我打算如何使用onSelect事件的有效示例。

希望对您有帮助

$(".flightDate").datepicker({
  minDate: 0,
  onSelect: function() {
    $(".dynamic-flightdate").datepicker("option", "disabled", false);
    $(".dynamic-flightdate").datepicker("option","minDate", $(this).datepicker("getDate"))
  }

});


$(".dynamic-flightdate").datepicker({ minDate: 0, disabled: true });


/*
$('body').on('focus',
  '.dynamic-flightdate',
  function() {
    $(this).datepicker({
      numberOfMonths: 1,
      firstDay: 1,
      defaultDate: 0,
      minDate: function() {
        $(this).prev(".datepicker").val();
        console.log($(this).prev(".datepicker").val());
      },
      changeMonth: true,
      changeYear: true,
      dateFormat: 'dd.mm.yy'
    });
    $(this).datepicker('show');
  });*/
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js" integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30=" crossorigin="anonymous"></script>

<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">


<input type="text" class="flightDate" />
<input type="text" class="dynamic-flightdate" />