【问题标题】:In MVC set focus on first list item in ListView在 MVC 中,将焦点集中在 ListView 中的第一个列表项上
【发布时间】:2016-05-13 22:41:29
【问题描述】:

我有一个包含许多列表视图的 MVC 项目。我希望将焦点设置在列表视图中的第一个项目上,以便用户只需按 Enter 键即可打开该项目?或使用箭头按钮向上或向下移动列表,然后按 Enter。

我已经为数据输入视图做了类似的事情,我专注于第一个文本框或组合框。这是我使用的代码:

$('.focus :input').focus();

那么在我看来:

<div class="col-md-3 focus">
     @Html.DropDownList("CategoryId", null, "Select Category", htmlAttributes: new { @class = "form-control" })
</div>

效果很好,所以现在我想用我的列表视图来做。这是我尝试过的:

$('.focus tr:first').focus();

在我看来:

<tr class="focus">

不幸的是,这不起作用。因此,我进行了搜索,但找不到 MVC 的任何答案,我可以找到 android、metro 应用程序等的答案,但没有找到 MVC 的答案。

【问题讨论】:

    标签: c# jquery asp.net-mvc listview


    【解决方案1】:

    https://api.jquery.com/focus/

    focus() 设计用于处理元素的子集,例如表单输入和锚点。

    它不适用于标准标记元素,例如表格行或 div 等。

    您可以做的是在列表项元素中使用锚点

    &lt;li&gt;&lt;a href="#"&gt;List Item&lt;a&gt;&lt;/li&gt; 然后将焦点放在锚点上...$('li a').focus();

    【讨论】:

    • 我不希望它看起来像它有焦点。我希望它具有焦点,以便用户可以通过按 Enter 输入记录。
    • html 元素如表格行没有焦点的概念。即,您不能使用制表符转到表格行。您只能关注表单输入、选择、锚点和按钮。您可能会在列表项元素&lt;li&gt;&lt;a href="#"&gt;List Item&lt;a&gt;&lt;/li&gt; 中使用锚点,然后将焦点放在锚点上...$('li a').focus();
    • 谢谢大卫 - 这很有趣。
    【解决方案2】:

    这是我设置第一个元素的方法。我已尝试为您的html 修改它。

    $('[selector for your dropdown]').focus();
    $('[selector for your dropdown]').val($('[selector for your dropdown] option:first').val()).change();
    

    【讨论】:

    • fran,我不想对我的下拉菜单做任何事情。我只是用它作为例子。我说的是我有一个表,我想选择表中的第一条记录。不过感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2012-03-25
    相关资源
    最近更新 更多