触发asp.net链接按钮点击回车键

发布于 2024-11-03 20:40:12 字数 771 浏览 1 评论 0原文

我有 2 个 asp 文本框,如果在 2 个文本框中的任何一个上按下 Enter 键,我会附加 jQuery 来触发链接按钮服务器端单击。但这似乎不起作用,请帮我解释一下我做错的地方和内容。我需要一个适用于所有主要浏览器 [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("click"),但无济于事。请帮忙!

谢谢。

I have 2 asp text boxes that I have attached jQuery to trigger linkbutton server side click if enter key is pressed on any of the 2 text boxes. But this does not seem to work, Please help me explain where and what I am doing wrong. I need a solution that works in all major browsers [IE7,8,9], [Firefox 3,4], Safari[4,5].

Here is my code,

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

and on server side pn Page_Load, I'm attaching this function to onkeypress event of textboxes.

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

I have tried using .click() rather then .trigger("click"), but to no avail. Please help!

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

雪化雨蝶 2024-11-10 20:40:12

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;

        });

});

Alison is correct, and if you wanted to use jQuery like you have, just do:

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

EDIT :

If you are using jQuery, why not use jQuery for all of this? Currently, what you have will not work cross-browser for the keypress event. I suggest something like this:

(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;

        });

});
你是年少的欢喜 2024-11-10 20:40:12

以下将触发回发:

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

The following will work to trigger the postback:

document.getElementById('<%= lnkSubmitGiftCardNumber.ClientID %>').click();
寄居者 2024-11-10 20:40:12

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

问题是 jQuery click 方法不会唤起链接按钮的 href。您必须“评估”“href”属性的内容。

You can find the correct answer here: http://johanleino.wordpress.com/2010/05/05/using-jquery-to-trigger-click-event-on-linkbutton/

The Problem is that the jQuery click method do not evoke the href of the linkbutton. You have to 'eval' the content of the 'href' attribute.

错々过的事 2024-11-10 20:40:12

我知道这是一篇旧帖子,但可能还有像我一样的其他人仍在寻找答案。我已经尝试过这段代码,它对我来说效果很好。检查“Enter key”是相同的,但使用 __doPostBack() 而不是 click()。

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

I understand that this is an old post, but there might be other people out there like me still searching around for the answer. I have tried this code and it works fine for me. Checking for "Enter key" is same but __doPostBack() instead of click().

__doPostBack('<%=lnkSubmitGiftCardNumber.UniqueID%>', '');
王权女流氓 2024-11-10 20:40:12
<asp:LinkButton ID="LinkButton1" OnClick="LinkButton1_Click"runat="server">G</asp:LinkButton>

  $(document).keypress(function (e) {
        if (e.which == 13) {
            javascript: __doPostBack('LinkButton1', '')
        }
    });
<asp:LinkButton ID="LinkButton1" OnClick="LinkButton1_Click"runat="server">G</asp:LinkButton>

  $(document).keypress(function (e) {
        if (e.which == 13) {
            javascript: __doPostBack('LinkButton1', '')
        }
    });
余生共白头 2024-11-10 20:40:12

您可以使用 JQUERY 在客户端进行所有操作。假设 txtGiftCardNumber 有 txtGiftCardNumberID 作为 ID,在这种情况下,您可以将 keydown 关联起来,这是一个比 IE 按键更好的事件

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

You can make all in client side with JQUERY. let's say txtGiftCardNumber has txtGiftCardNumberID as ID in this case you can associate keydown that is a better event that keypress with IE

  $('input:text[id$=txtGiftCardNumberID ]').keydown(function (event) {
           if (event.keyCode == '13') {
            $('#'+<%= lnkSubmitGiftCardNumber.ClientID %>).click();
            }
        }
    });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文