【问题标题】:Textbox gets back focus upon timepicker close文本框在时间选择器关闭时重新获得焦点
【发布时间】:2012-02-04 09:25:07
【问题描述】:

我正在使用the timepicker plugin for jquery

一旦用户选择了日期+时间并单击“完成”按钮,这基本上只是关闭对话框,我希望设置日期时间的文本框重新获得焦点(插件的当前行为是模糊焦点)。

这是因为在此页面上我有一组文本框,并且它们的选项卡顺序是按顺序设置的。我需要日期时间文本框重新获得焦点以继续标签顺序。否则 tab 顺序将从第一个文本输入重新开始,这对用户来说很不方便。

【问题讨论】:

  • 请格式化您的帖子;此外,问候和感谢是多余的。最后,不要在标题中写标签 - 事实上,您每次都以不同的方式完成它,这很好地说明了为什么我们有一个可索引且一致的标签系统而不是
  • 您好,感谢您的有用建议,尤其是标题一中的无标签,我 100% 同意,但为什么问候和感谢是多余的?
  • 这不是论坛或聊天室,也不是一组电子邮件或信件,而是问题答案的汇编。 Chatter 是多余的(这就是 cmets 的用途!有点)。 meta.stackexchange.com/questions/2950/…
  • 好吧,这是有道理的。我认为问答的简洁性超过了个人接触的好处。再次感谢。修改后我的帖子看起来更好了!

标签: jquery jquery-plugins jquery-ui-dialog datetimepicker tab-ordering


【解决方案1】:

说明

假设我理解您的问题,您可以在 onClose 事件中将焦点设置到您的文本框。如果这不是正确的答案,请提供更多信息。 html 或更好的 jsFiddle 会很棒。

样本

$('#MyDatepicker').datetimepicker({
    onClose: function(dateText, inst) {
       $('#MyDatepicker').focus();
    }
});

更多信息

更新

如果您有多个 datePickers,您可以这样做。

  1. 给他们所有相同的 css 类。
  2. 这样做

        $('.MyDatePickerClass').datetimepicker({
            onClose: function(dateText, inst) {
               $('.MyDatePickerClass').focus();
            }
        });
    

【讨论】:

  • 你太棒了!这行得通。但请再问一个问题 - 现在关闭后它确实将焦点重新回到我的文本框,但这反过来又打开了日期选择器。我正在研究如何防止这种情况。如果你知道你的头顶,你会指出我正确的方向吗?非常感谢!
  • 谢谢@Lagoona 一个非常好的问题。使用常规的 jQuery 日期选择器,我知道如何防止这种情况发生。但是,目前,我正在考虑如何使用您正在使用的插件来做到这一点。一种可以做到这一点但不是很优雅的方法是在$('.MyDatePickerClass').focus(); 之后关闭选择器。让我们谈谈它,我相信我们会找到答案。
  • 再次感谢@dknaack!我试图在 focus() 之后关闭选择器,但它导致了无限循环。我决定将新问题放在一个单独的问题中,这样它就可以更加突出。
  • 很高兴为您提供帮助。祝你有美好的一天。
猜你喜欢
  • 2011-03-13
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-29
  • 1970-01-01
  • 2011-02-08
相关资源
最近更新 更多