加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

处理用户在ASP.NET MVC网站中点击“Enter”键

发布时间:2020-12-15 18:43:47 所属栏目:asp.Net 来源:网络整理
导读:我正在一个ASP.NET MVC网站上有多个提交按钮。即: input type="submit" name="SubmitButton" value="Reset" / input type="submit" name="SubmitButton" value="OK" / input type="submit" name="SubmitButton" value="Back" / 我需要允许用户按“Enter”键
我正在一个ASP.NET MVC网站上有多个提交按钮。即:
<input type="submit" name="SubmitButton" value="Reset" />
    <input type="submit" name="SubmitButton" value="OK" />
    <input type="submit" name="SubmitButton" value="Back" />

我需要允许用户按“Enter”键快速提交表单。 HTML标准似乎指定如果用户按“Enter”键,将假定第一个提交按钮。但是,我需要将第二个按钮(即“OK”)按钮设置为默认按钮,并且由于我甚至不想谈论的原因,更改按钮顺序不是一个选项。

我搜索了几遍,我发现this post关于在ASP.NET中使用Page.Form.DefaultButton,但这并不适用于ASP.NET MVC。

我还尝试了以下javascript解决方案,而它在Chrome中可以工作,但在IE6中不起作用

$('body').keypress(function(e) {
       if (e.which === 13) {
          $("input[value='OK']").trigger('click');
       }
    });

我可以想到一些真正极端的解决方案,例如通过每个单独的控件,将上述功能附加到他们的形式。但是,我不认为这是一个非常整洁的解决方案,所以我想知道谁有更好的解决方案?

解决方法

首先,这是错误的:
<input type="submit" name="SubmitButton" value="Reset" />
<input type="submit" name="SubmitButton" value="OK" />
<input type="submit" name="SubmitButton" value="Back" />

所有三个都提交按钮。复位是type =“reset”的输入。得到排序。其次,我已经成功实现了这样的功能,它适用于IE6。尝试这个:

function keypressHandler(e)
    {
        if(e.which == 13) {
            e.preventDefault(); //stops default action: submitting form
            $(this).blur();
            $('#SubmitButton').focus().click();//give your submit an ID
        }
    }

    $('#myForm').keypress(keypressHandler);

focus()部分使用户按Enter键时按下按钮。相当漂亮

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读