我有两个日期选择器输入,我试图在第一个日期选择器中选择日期后自动打开第二个日期选择器输入。截至目前,日期框打开然后立即关闭。我可以在 Knockout.js View 模型之外很好地完成此操作,而无需关闭日期框,但问题是我希望仅当第一个日期框具有有效日期时才打开第二个日期框。
正如我上面提到的,这在我的 View 模型之外工作得很好,但是它没有考虑开始日期的任何错误。
$("#start_date_input").datepicker('option',"onClose", function() {
$( "#start_date_input" ).datepicker( "show" );
});
这是我希望触发第二个日期选择器的地方
self.startDate.subscribe(function(){
var startDateErrors = ko.validation.group(self.startDateValidation);
var endDateErrors = ko.validation.group(self.endDateValidation);
if(startDateErrors().length == 0 && endDateErrors().length == 0){
populateList();
}
else if(startDateErrors().length == 0){ //if a valid start date is selected, show the end date
$("#end_date_input").datepicker("show");
}
});
一旦我选择了开始日期,结束日期选择器就会显示并立即消失。光标仍在结束日期输入框中并闪烁。知道是什么导致它关闭吗?
我尝试添加 $("end_date_input").datepicker({autoclose: false});
但这没有任何作用。
最佳答案
不要触及 View 模型并直接摆弄 DOM。您需要一个用于日期选择器的自定义绑定(bind)处理程序。有一个here这看起来很受欢迎。这本身可能无法解决您的问题,但它会让您更好地控制正在发生的事情。
我怀疑(但不知道)有一个 hasFocus
binding关联的输入字段上将正确显示日期选择器。
关于javascript - 选择日期后打开第二个日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32101384/