Javascript 在更改时显示日期选择器

Javascript 在更改时显示日期选择器,javascript,jquery,jquery-ui,datepicker,Javascript,Jquery,Jquery Ui,Datepicker,我有一个简单的html表单,有3个输入 <input id="dateBegin" type="text" placeholder="Begin"> <input id="dateEnd" type="text" placeholder="End"> <input id="datePrice" type="text" placeholder="Ex. : 220.00"> 现在,为了创建流畅的用户体验,我想在填写一个输入后选择表单中的下一个输入。具体

我有一个简单的html表单,有3个输入

<input id="dateBegin" type="text"  placeholder="Begin">

<input id="dateEnd" type="text" placeholder="End">

<input id="datePrice" type="text"  placeholder="Ex. : 220.00">
现在,为了创建流畅的用户体验,我想在填写一个输入后选择表单中的下一个输入。具体而言,它意味着:

  • [用户在第一个输入(dateBegin)内单击]->显示日期选择器
  • [用户使用datepicker选择日期]->dateBegin用日期值填充,链接到dateBegin的datepicker隐藏,下一个输入(dateEnd)聚焦,并显示其datepicker
  • [用户使用第二个日期选择器选择日期]->dateEnd用日期值填充,链接到dateEnd的日期选择器被隐藏,下一个输入(datePrice)被聚焦
  • 为了实现这种行为,我将此代码添加到我的页面中

    $('#dateEnd').change(function(){
        $("#datePrice").focus();
    
    });
    $('#dateBegin').change(function(){
        $("#dateEnd").focus();
        $("#dateEnd").datepicker("show"); // This line can be removed it doesn't change anything but I've tried it :p
    });
    
    我的问题在步骤2)。链接到dateEnd的日期选择器在消失之前短暂出现。它可能不清楚,所以这里是一个复制它

    我不明白为什么链接到dateEnd的datepicker会消失? 但是,更重要的是,我如何才能达到期望的行为?

    试试这个

    $('#dateBegin').change(function(){
        setTimeout(function (){
                $("#dateEnd").focus();
            }, 1);
    });
    
    我认为现在的情况是,在将焦点设置到下一个文本框后,日历仍然认为需要关闭。通过延迟焦点更改,您可以在jQuery UI响应单击后更改焦点。

    试试这个

    $('#dateBegin').change(function(){
        setTimeout(function (){
                $("#dateEnd").focus();
            }, 1);
    });
    
    我认为现在的情况是,在将焦点设置到下一个文本框后,日历仍然认为需要关闭。通过延迟焦点更改,您可以在jQuery UI响应单击后更改焦点。

    试试这个

    $('#dateBegin').change(function(){
        setTimeout(function (){
                $("#dateEnd").focus();
            }, 1);
    });
    
    我认为现在的情况是,在将焦点设置到下一个文本框后,日历仍然认为需要关闭。通过延迟焦点更改,您可以在jQuery UI响应单击后更改焦点。

    试试这个

    $('#dateBegin').change(function(){
        setTimeout(function (){
                $("#dateEnd").focus();
            }, 1);
    });
    

    我认为现在的情况是,在将焦点设置到下一个文本框后,日历仍然认为需要关闭。通过延迟焦点更改,您可以在jQuery UI响应单击后更改焦点。

    它有效,我只能在五分钟内接受您的答案。它有效,我只能在五分钟内接受您的答案。它有效,我只能在五分钟内接受您的答案。它有效,我只能在五分钟内接受您的答案。