jquery - 如何将焦点保持在按 Enter 提交表单的输入元素上

标签 jquery asp.net-mvc-2 user-interface

表单包含输入元素和提交按钮。按“提交”按钮会在浏览器的新选项卡中显示 pdf 文件。 如果按 Enter 键显示报告,焦点将移至提交按钮。选择报告参数标记后,需要再次单击输入元素才能向同一元素输入新值。

如何在按下 Enter 的位置保持焦点输入元素?

<form id="Form" class='form-fields' method='post' target='_blank'
action='Render'>

<input id='test' name='test' value='test' /> 
...
  <input id='_submit' type='submit' value='Show report' /> 
</form>

使用了jquery、jqueryui、asp.net mvc2。

更新

我在表单中有 2 个具有相同名称的元素,以允许未选中的复选框提交:

<input type='hidden' value='false' name='Summary' />
<input type='checkbox' id='Summary' name='Summary' checked />
<select class="ui-widget-content ui-corner-all" id="_Report" name="_Report" size="10">
<option value="LV001">Report1</option>
<option value="LV003">Report2</option>
<option selected="selected" value="LV009">Report3</option>
</select>

我按照评论中的建议尝试了下面的代码。如果焦点位于复选框中,则不会恢复焦点。相反,选择元素是焦点。如何修复?

        $("#Form input:not([type=submit]), textarea, select").focus(function () {
            $('input').removeClass('hasFocus');
            $(this).addClass('hasFocus');
        });

最佳答案

如果您想返回到最后一个焦点项目,我认为您需要跟踪最后一个焦点项目。

像这样的东西可能会实现你正在寻找的东西:

$(function() {
    var lastFocus = [];

    $('#Form').find(':text,:radio,:checkbox,select,textarea').focus(function() {
        lastFocus = $(this);
    });

    $('#Form').submit(function(){    
        if (lastFocus.length == 1)
            lastFocus.focus();

        // just to prevent the actual submit - remove this to enable submit
        return false;
    });
});

我还做了一个jsfiddle来测试:http://jsfiddle.net/Jht6C/

关于jquery - 如何将焦点保持在按 Enter 提交表单的输入元素上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7601362/

相关文章:

java - 使用数组的石材剪程序 Joption

javascript - onClick 在 React js 中没有触发

jquery - 使用jquery ajax处理包含数组的数据时,以[]结尾获取参数名称

javascript - 如何覆盖函数内的数组?

unit-testing - 如何从TestInitialize方法调用Application_Start()?

c# - 为什么我不能关闭选项卡(甚至窗口)并验证错误 Devexpress 控件?

javascript - Bootstrap 工具提示位置(动态元素)

javascript - 如何在 Html.TextBoxFor 方法中为 javascript 添加单引号?

asp.net-mvc - 更正缺少 ASP.Net MVC Controller 的 404 消息

python - Urwid 列表框 : How to get fluid focus movement?