通过在asp.net登录控件中按Enter键登录

时间:2011-05-12 14:39:57

标签: asp.net key login-control enter

我必须阅读一百个关于此的论坛和博客文章,所有人都在谈论放置一个Panel并将Default按钮设置为Login按钮,或者在Form中设置Default按钮。我已经尝试了所有这些以及更多,但没有任何作用。

我的Login控件中有两个LinkBut​​tons,它被转换为模板。第一个是Login按钮,第二个是注册页面的链接。当我按Enter键时,Register LinkBut​​ton会触发并重定向到寄存器页面。

我尝试在面板上设置默认按钮并将它们放在任何地方,并在Form标签本身中设置默认按钮。我尝试删除“注册”按钮并设置onclick并调用重定向到注册页面的函数。这甚至都不起作用,输入键仍然重定向到注册页面。

它们被放置在LayoutTemplate中,如下所示:

<div class="btn-login">
                                        <asp:LinkButton ID="LoginButton" runat="server" CommandName="Login" ValidationGroup="LoginUserValidationGroup"
                                            Height="38px" Width="120px">
                                        </asp:LinkButton>
                                    </div>
                                    <div class="btn-opretbruger">
                                        <asp:LinkButton ID="Register" runat="server" ValidationGroup="LoginUserValidationGroup"
                                            Height="38px" Width="120px" PostBackUrl="/Account/registrerbruger.aspx">
                                        </asp:LinkButton>

                                    </div>

我读过的所有文章都使用了Button控件,我使用的是LinkBut​​ton。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

任务1)

在页面中添加一些脚本以禁用回车键...

function stopRKey(evt) {

    var evt = (evt) ? evt : ((event) ? event : null);
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);    
    if ((evt.keyCode == 13) && (node.type == "text")) { return false; }
}

任务2)

添加一些脚本,允许您定位html元素并为其引发事件处理程序

function submitByTarget(event, target) {

    if (event.keyCode == 13) {

        jQuery('#' + target.id).click();

    }

}

任务3)

为您的登录txtbox添加一个事件处理程序,等待命中输入键并为目标按钮引发正确的.click处理程序...在这种情况下,“登录”

txtLogin.Attributes.Add("onkeypress", "return submitByTarget(event," + btnSearch.ClientID + ");");

答案 1 :(得分:0)

在页面加载中包含以下代码。它会自动将焦点设置在按钮上。

//Set the default button for the Login page
this.Page.Form.DefaultButton = btnLogin.UniqueID;