1

我一定已经阅读了一百篇关于此的论坛和博文,都在谈论放置一个面板并将默认按钮设置为登录按钮,或者在表单中设置默认按钮。我已经尝试了所有这些以及更多,但没有任何效果。

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

我尝试在面板上设置默认按钮并将它们放置在任何地方,并在表单标签本身中设置默认按钮。我尝试删除注册按钮并设置 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。

有任何想法吗?

4

2 回答 2

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 + ");");
于 2011-05-12T16:03:59.200 回答
0

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

//Set the default button for the Login page
this.Page.Form.DefaultButton = btnLogin.UniqueID;
于 2013-12-09T09:35:24.903 回答