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

标签 jquery asp.net click postback linkbutton

我有 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"),但无济于事。请帮忙!

谢谢。

最佳答案

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;

        });

});

关于jquery - 触发asp.net链接按钮点击回车键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5809898/

相关文章:

javascript - jQuery 计数器启动/停止/重置未正确停止

c# - 我可以确定打开的 Excel 工作簿的临时路径吗?

c# - 为什么下拉菜单总是弄乱我的 CSS 布局?

javascript - 菜单,在 Bootstrap 中导航栏上的搜索栏下...不兼容

javascript - 如何使用 event.target 获取外部 div 目标?

javascript - 在 JavaScript 中检测点击与触摸

javascript - 从单击/更改函数中获取更新的变量值

jquery - 如何使用 jQuery 模拟打字?

javascript - 如何选择数据列表的描述

asp.net - iis 启动延迟与 aspx 页面