javascript - 选择日期后打开第二个日期选择器

标签 javascript jquery knockout.js datepicker

我有两个日期选择器输入,我试图在第一个日期选择器中选择日期后自动打开第二个日期选择器输入。截至目前,日期框打开然后立即关闭。我可以在 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/

相关文章:

mvvm - knockout.js 真的采用 MVVM 模式吗?

javascript - 乘法时数值显示不正确

javascript - 如何在不使用 moment.js 的情况下通过 JavaScript 的增量舍入到最接近的小时和分钟?

javascript - 给定 d3 中的 1 个图表,由 1 个文件提供 + 想要绘制 X 个图表给定 X 文件数组 + d3

javascript - 检查 jQuery.validate() 上的元素上是否已有 "active"类

javascript - knockout 'click' 绑定(bind)不起作用

javascript - TypeError : data. itemNo 不是函数

javascript - 如何向服务请求 d3 数据?

javascript - 如何从 REST 响应渲染对象

jquery数组图像淡入淡出背景