【问题标题】:Opening second datepicker after selecting date选择日期后打开第二个日期选择器
【发布时间】:2015-08-19 16:54:29
【问题描述】:

我有两个日期选择器输入,我试图在第一个选择日期后自动打开第二个。截至目前,日期框打开然后立即关闭。我可以在没有关闭日期框的情况下在我的 knockout.js 视图模型之外执行此操作,但问题是我希望第二个日期框只有在第一个日期框具有有效日期时才打开。

正如我上面提到的,这在我的视图模型之外工作得很好,但是它没有考虑到开始日期的任何错误。

$("#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});,但没有任何作用。

【问题讨论】:

  • 您在$("#end_date_input).datepicker("show"); 上缺少"
  • @RobinCarloCatacutan 这只是一个错字

标签: javascript jquery knockout.js datepicker


【解决方案1】:

不要绕过视图模型并直接摆弄 DOM。您需要一个用于日期选择器的自定义绑定处理程序。有一个here 似乎很受欢迎。这本身可能无法解决您的问题,但它会让您更好地控制正在发生的事情。

我怀疑(但不知道)在关联的输入字段中有 hasFocus binding 会正确显示日期选择器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    相关资源
    最近更新 更多