javascript - Datepicker 弹出第一个焦点

标签 javascript jquery jquery-ui datepicker

我的表单的第一个输入字段在文档准备好几毫秒后获得焦点(在我的例子中最多 50 毫秒)。如果第一个输入字段是日期,则会弹出日期选择器。

我需要的是在页面加载后将焦点放在第一个输入字段上,并在焦点事件上弹出日期选择器,但不是在页面加载后立即。这意味着如果第一个输入元素是日期,它会获得焦点,在我单击它之后,日期选择器应该会自行显示。然后所有其他日期选择器应该会弹出焦点。我需要这样做,这样我就不必放松并再次集中注意力。

<input data-calendar-format="dd.MM.yyyy">

$(document).ready(function() {
    $('input[data-calendar-format]').datepicker({
        dateFormat: 'dd.mm.yy'
    });
});

最佳答案

您可以使用 beforeShow 选项来阻止 datepicker 打开。如果页面刚刚加载返回false。我已经用时间来判断页面是否刚刚加载;如果您要利用时间,请找到适合您需要的时间。

$(document).ready(function() {
    var dt = Date.now();
    $('input[data-calendar-format]').datepicker({
        dateFormat: 'dd.mm.yy',
        beforeShow: function() {
            if( Date.now() - dt < 51 ) {              
                return false;
            }
        }
    });
    $(':input').first().focus().on('click',function() {
        $(this).datepicker('show');
    });   
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

<input data-calendar-format="dd.MM.yyyy">

关于javascript - Datepicker 弹出第一个焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31676216/

相关文章:

javascript - 如何使用 javascript 中的输入测量圆的表面?

javascript - 如何启用页内编辑功能?

javascript - Netlify Vue 构建找不到导出模块

javascript - 为什么公共(public) Web 服务返回 200 OK 但没有 JSON

javascript - 使用下一步和后退按钮在一行中显示 HTML 内容

javascript - jQuery CSS 不透明度动画

jquery - 区分相同的类名

javascript - requirejs 优化后 jQuery.ui undefined

jquery - 当焦点位于样式化的 DIV 上时,如何捕获按键?

javascript - 如何删除 jquery 中的 UI selectmenu?