触发asp.net链接按钮点击进入按键

时间:2011-04-27 20:06:57

标签: jquery asp.net click postback linkbutton

我有2个asp文本框,我已经附加了jQuery来触发linkbutton服务器端点击如果在2个文本框中的任何一个上按下回车键。但这似乎不起作用,请帮我解释我在哪里做错了什么。我需要一个适用于所有主流浏览器的解决方案[IE7,8,9],[Firefox 3,4],Safari [4,5]。

这是我的代码,

<script language="javascript" type="text/javascript">
function GC_PostBack() {
    jQuery('#<%=lnkSubmitGiftCardNumber.ClientID%>').trigger("click");
}

在服务器端pn Page_Load,我将此函数附加到文本框的onkeypress事件。

 if (!IsPostBack)
    {
        txtGiftCardNumber.Attributes.Add("onkeypress", "if(window.event.keyCode == 13) { GC_PostBack(); }");
        txtGiftCardPin.Attributes.Add("onkeypress", "if(window.event.keyCode == 13) { GC_PostBack(); }");
    }

我尝试使用.click()而不是.trigger(“点击”),但无济于事。请帮忙!

感谢。

6 个答案:

答案 0 :(得分:2)

Alison是正确的,如果你想像你一样使用jQuery,那就做:

<script language="javascript" type="text/javascript">
    function GC_PostBack() {
        jQuery('#<%=lnkSubmitGiftCardNumber.ClientID%>').click();
    }
</script>

编辑:

如果您使用的是jQuery,为什么不在所有这些中使用jQuery?目前,您所拥有的内容将无法跨按键事件进行跨浏览。我建议这样的事情:

(function() {

    $('input[id$="txtGiftCardNumber"], input[id$="txtGiftCardPin"]')
        .keypress(function(e) {

            var keyCode;

            if (window.event) keyCode = window.event.keyCode;
            else if(e) keyCode = e.which;
            else return true;

            if (keyCode == 13) {

                $('[id$="lnkSubmitGiftCardNumber"]').click();
                return false;

            } else return true;

        });

});

答案 1 :(得分:1)

以下内容可用于触发回发:

document.getElementById('<%= lnkSubmitGiftCardNumber.ClientID %>').click();

答案 2 :(得分:1)

您可以在此处找到正确的答案:http://johanleino.wordpress.com/2010/05/05/using-jquery-to-trigger-click-event-on-linkbutton/

问题是jQuery click方法不会唤起linkbutton的href。您必须'评估''href'属性的内容。

答案 3 :(得分:1)

我知道这是一个很老的帖子,但可能还有其他人在那里像我一样仍在寻找答案。我试过这个代码,它对我来说很好。检查“Enter key”是相同的,但是__doPostBack()而不是click()。

__doPostBack('<%=lnkSubmitGiftCardNumber.UniqueID%>', '');

答案 4 :(得分:1)

<asp:LinkButton ID="LinkButton1" OnClick="LinkButton1_Click"runat="server">G</asp:LinkButton>

  $(document).keypress(function (e) {
        if (e.which == 13) {
            javascript: __doPostBack('LinkButton1', '')
        }
    });

答案 5 :(得分:0)

您可以使用JQUERY在客户端进行全部操作。让我们说txtGiftCardNumber有txtGiftCardNumberID作为ID在这种情况下,您可以将keydown与keypress的最佳事件关联起来

  $('input:text[id$=txtGiftCardNumberID ]').keydown(function (event) {
           if (event.keyCode == '13') {
            $('#'+<%= lnkSubmitGiftCardNumber.ClientID %>).click();
            }
        }
    });