【问题标题】:How to prevent jQuery datepicker from popping up on initial page load but still scroll to datepicker textbox如何防止 jQuery datepicker 在初始页面加载时弹出但仍滚动到 datepicker 文本框
【发布时间】:2014-01-25 19:36:25
【问题描述】:

我有类似下面的 Javascript:

$(function () {
    $("#txtDate").focus();
    $("#txtDate").datepicker({
        ...
        autoOpen: false,
        ...
    });
});

我想在不弹出日期选择器的情况下专注于页面加载时的文本框。当前页面加载时日期选择器已打开。

我需要能够在页面加载时让页面滚动到该文本框,并且 txtDate 文本框具有焦点会很好,以便用户可以切换到表单中的下一个输入很容易。

任何帮助将不胜感激。

编辑:
注意:必须在 IE 8-10 中工作

【问题讨论】:

  • 在此示例中有效。 (谷歌浏览器)jsfiddle.net/pQALk 是否还有更多您未显示导致问题的代码?
  • txtDate 似乎不是一个有效的元素。您的目标是id 还是class
  • 哎呀应该是 id。我刚改了。

标签: javascript jquery jquery-ui datepicker jquery-events


【解决方案1】:

试试这个:

var initialized = false;
$(function () {
    $("#txtDate").focus();
    $("#txtDate").blur(function(){
        if(!initialized){
            $("#txtDate").datepicker({
                autoOpen: false
            });    
            initialized = true;
        }
    });
});

例子

http://jsfiddle.net/pQALk/3/

【讨论】:

  • 是的...哎呀,我的意思是在元素 ID 前面加上 # 符号。是的,我也将 autoOpen 设置为 false。是的,我需要它在 IE 8-10 中工作。我刚刚更新了问题以反映这一点。
【解决方案2】:

这个 jQuery 工作:

$(function () {
    $(".txtDate").focus();
    setTimeout(function() {$(".txtDate").datepicker({
        autoOpen: false
    });},10);
});

这有点小技巧 - 在绑定日期选择器之前添加了 0.01 秒的延迟,因此焦点发生在日期选择器绑定之前,因此不会触发日期选择器。 http://jsfiddle.net/pQALk/2/

【讨论】:

    猜你喜欢
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多