当前位置: 首页 > 面试题库 >

防止jQuery UI对话框将焦点设置到第一个文本框

寇桐
2023-03-14
问题内容

我已经设置了一个jQuery
UI模式对话框,以在用户单击链接时显示。在该对话框div标签中有两个文本框(为简洁起见,我仅显示1的代码),并将其更改为对焦点有反应的jQuery UI
DatePicker文本框。

问题在于jQuery UI对话框(“ open”)以某种方式触发了第一个文本框具有焦点,然后触发了日期选择器日历以立即打开。

因此,我正在寻找一种方法来防止焦点自动发生。

<div><a id="lnkAddReservation" href="#">Add reservation</a></div>

<div id="divNewReservation" style="display:none" title="Add reservation">
    <table>
        <tr>
            <th><asp:Label AssociatedControlID="txtStartDate" runat="server" Text="Start date" /></th>
            <td>
                <asp:TextBox ID="txtStartDate" runat="server" CssClass="datepicker" />
            </td>
        </tr>
    </table>

    <div>
        <asp:Button ID="btnAddReservation" runat="server" OnClick="btnAddReservation_Click" Text="Add reservation" />
    </div>
</div>

<script type="text/javascript">
    $(document).ready(function() {
        var dlg = $('#divNewReservation');
        $('.datepicker').datepicker({ duration: '' });
        dlg.dialog({ autoOpen:false, modal: true, width:400 });
        $('#lnkAddReservation').click(function() { dlg.dialog('open'); return false; });
        dlg.parent().appendTo(jQuery("form:first"));
    });
</script>

问题答案:

jQuery UI 1.10.0Changelog将故障单4731列出为已修复。

看起来好像没有实现focusSelector,而是使用了对各种元素的级联搜索。从票:

扩展自动对焦,从[自动对焦]开始,然后是:tabbable内容,然后是按钮窗格,然后是关闭按钮,然后是对话框

因此,用autofocus属性标记一个元素,该元素应成为焦点:

<input autofocus>

在文档中,对焦点逻辑进行了说明(在目录下,标题为“焦点”):

打开对话框后,焦点将自动移至与以下内容匹配的第一项:

  1. 对话框中具有autofocus属性的第一个元素
  2. :tabbable对话框内容中的第一个元素
  3. :tabbable对话框按钮窗格中的第一个元素
  4. 对话框的关闭按钮
  5. 对话框本身


 类似资料:
  • 本文向大家介绍MFC设置对话框焦点的方法简述,包括了MFC设置对话框焦点的方法简述的使用技巧和注意事项,需要的朋友参考一下 本文简单讲述了MFC设置对话框焦点的方法,分享给大家供大家参考。具体实现方法如下: 具体的方法有两种: 1. 设置对话框控件的tab order。 按Ctrl+D即可看见。将需要被设置到焦点的空间的tab order设为1. 2. 对话框的OnInitDialog返回FALS

  • 问题内容: 网页加载后如何自动将焦点设置到文本框? 是否有HTML标记可以执行此操作,还是必须通过Javascript完成? 问题答案: 如果您使用的是jquery: 或原型: 或纯JavaScript: 尽管请记住,这将替换其他加载处理程序,所以请在Google中查找addLoadEvent()以获取添加加载处理程序而不是替换的安全方法。

  • 问题内容: 我有一个用netbeans开发的应用程序,我想在显示面板时将焦点设置为一定。我已经阅读了许多文章,并尝试了各种方法,但没有奏效。主要问题之一是在哪里放置所需的代码,我认为在我的情况下是 有一些指示使用Window Listener的帖子,但是随着netbeans生成GUI,我无法看到如何实现接口,因为我无法编辑创建jPANEL等的代码。整个过程非常令人沮丧,我真的没有相信这应该很困难。

  • 问题内容: Hai Guys,我想将光标设置在文本框上长度为14的位置,该位置将没有值。.我知道最初的光标将是0,但我希望它是14 问题答案: IE在设置光标位置时使用的方法与Firefox,Opera和Chrome不同。最好创建一个辅助函数,它将为您完成。我将其用于自己的需求。 最后一件事是从onfocus处理程序中调用它。 祝好运

  • 在UWP应用程序(Windows10)上,我在ListView中显示了一个记录列表。

  • 我使用keycloak来管理基于Java的Web应用程序的身份验证。 我配置了一个Kerberos用户联合,该联合在内部网络中运行良好。 从网络外部访问Web应用程序,我会得到以下登录对话框,而不是转发到keycloak登录表单。 有趣的是,转发适用于Firefox,但不适用Edge、Chrome、IE。 如何阻止登录对话框并直接转发到keycloak-login-form? 编辑:例如,是否可以