12

我目前有一个对话框,其中包含两个输入作为其内容(两个输入使用.datepicker())。当我打开对话框时,第一个输入成为焦点,第一个日期选择器自动出现。我曾尝试隐藏 div 并模糊输入,但这会导致日期选择器不再出现在焦点上。

理想情况下,我希望能够做到以下几点:

  • 打开对话框(不显示日期选择器)。
  • 单击第一个输入并显示日期选择器。

这是我当前的代码:

JAVASCRIPT:

$("#to").datepicker({
      onClose: function (selectedDate) {
         $("#from").datepicker("option", "minDate", selectedDate);
      }
    });

    $("#from").datepicker({
     onClose: function (selectedDate) {                            
         $("#to").datepicker("option", "maxDate", selectedDate);
    }
});


$("#settingsDialog").dialog({
     autoOpen: false,
    open: function (event, ui) {
                     if ($(".ui-datepicker").is(":visible"))
                         $(".ui-datepicker").hide();

                     $("#to").blur();
                     $this.focus().click();
                 },
     close: function () {
         $(this).dialog("close");
     }
});

我还做了一个 jsfiddle 演示:http: //jsfiddle.net/ARnee/19/

我在网上搜索了一个解决方案,发现了类似的问题,但似乎没有任何帮助。谁能帮帮我?!

编辑:

我使用的浏览器是 Chrome。

4

4 回答 4

15

尝试将包含日期选择器的输入上的tabindex属性设置为 -1。

<input type="text" id="to" tabindex="-1" />

编辑:

<input id="to" type="text" tabindex="-1" />
<input id="from" type="text" tabindex="-1" />  

演示:http: //jsfiddle.net/ARnee/32/

于 2013-06-21T07:53:59.717 回答
7

可以在没有高度的对话框中粘贴虚拟输入,因此不会被看到。将它放在日期选择器字段之前

<input style="height:0px; border:none"/>

演示:http: //jsfiddle.net/ARnee/20/

于 2013-01-04T23:36:16.683 回答
1

您可以在打开对话框时创建日期选择器,如下所示:

$("#settingsDialog").dialog({
    autoOpen: false,
    open: function (event, ui) {
                     //if ($(".ui-datepicker").is(":visible"))
                     //    $(".ui-datepicker").hide();

                     $("#to").blur();
                 },
     close: function () {
         $("#to").datepicker("destroy");
         $("#from").datepicker("destroy");
         $(this).dialog("close");
     }
});



$("#b1").click(function(){
      $("#settingsDialog").dialog("open");
      $("#to").datepicker({
         onClose: function (selectedDate) {
            $("#from").datepicker("option", "minDate", selectedDate);
         }
      });

      $("#from").datepicker({
         onClose: function (selectedDate) { 
            $("#to").datepicker("option", "maxDate", selectedDate);
         }
      });
});

​</p>

于 2013-01-04T23:32:31.063 回答
0
$(document).ready(function(){



$("#settingsDialog").dialog({
     autoOpen: false,
    open: function (event, ui) {
        $("#to").datepicker({
        onClose: function (selectedDate) {
            $("#from").datepicker("option", "minDate", selectedDate);
        }
    });

    $("#from").datepicker({
        onClose: function (selectedDate) {                            $("#to").datepicker("option", "maxDate", selectedDate);
    }
});
                     if ($(".ui-datepicker").is(":visible"))
                         $(".ui-datepicker").hide();

                     $("#to").blur();
                     $this.focus().click();
                 },
     close: function () {
         $("#to").datepicker( "destroy" );
         $("#from").datepicker( "destroy" );
         $(this).dialog("close");
     }
});



    $("#b1").click(function(){
       $("#settingsDialog").dialog("open");
    });

});
​
于 2013-01-04T23:50:45.413 回答