【问题标题】:Use JQuery to call an asp:linkbutton click function使用 JQuery 调用一个 asp:linkbutton 点击​​函数
【发布时间】:2009-04-06 03:48:22
【问题描述】:

我一直在玩搜索控件,我注意到当您尝试从文本框中按 Enter 键时,它会提交表单但没有单击搜索按钮(就像我想要的那样)。

我的标记是:

<div>
    <span>Search</span>
    <asp:TextBox ID="txtSearch" runat="server" Width="170"
        onkeydown="if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {$('#<%=lkbSearch.ClientID %>').click();return false;} else return true; ">
    </asp:TextBox>
</div>
<asp:LinkButton ID="lkbSearch" runat="server" CssClass="searchButton">
    <asp:Image ID="imgSearch" runat="server" ImageUrl="~/Images/Master/button_go.gif" />
</asp:LinkButton>

我将 onkeydown 事件添加到文本框,它会运行,但是当我尝试使用 JQuery 从按钮调用 Click() 函数时,它什么也不做。

我怎样才能做到,当在文本框中按下输入时它“点击”按钮?

【问题讨论】:

    标签: asp.net javascript jquery


    【解决方案1】:

    因为LinkButton 已作为&lt;a&gt; 添加到页面。当您使用 jQuery 选择按钮时,您会得到包裹在 jQuery 中的元素。因为调用点击事件只会触发点击事件,不关注href

    以下代码将模拟单击按钮:

    $('#<%= linkbuttonid.ClientID%>')[0].click();
    

    您可以将'#&lt;%= linkbuttonid.ClientID%&gt;' 替换为任何能获得正确元素的选择器。但必须包含[0],以便在&lt;a&gt; 本身上调用click。

    或者,您可以将页面重新路由到 href:

    window.location = $('yourselector').attr('href');
    

    有关在 javascript 中为锚标记调用点击事件的更多信息,请参阅this question

    【讨论】:

      【解决方案2】:

      这里不涉及jQuery

      Page.RegisterHiddenField( "__EVENTTARGET", lkbSearch.ClientID );
      

      我看到你在一个 div 中,如果你有一个面板,那么就有 DefaultButton 属性。

      如果你真的想使用 jQuery,你可以使用 ClientScript.GetPostBackEventReference

      祝你好运:-)

      【讨论】:

      • 但这不意味着我只能在它使用的每个页面上为该文本框设置它吗?我忘了提,这是在我的母版页上使用的服务器控件内部(所以它在网站的每个页面上)
      • 是的,我的代码是为了使它成为默认操作。我认为面板和默认按钮仍然可以简单,或者您可以使用 GetPostBackEventReference 并在 keycode 是 enter 键时调用它。
      【解决方案3】:

      在尝试了一些不同的东西之后,我终于想出了解决方案。

      我将文本框和按钮包装在一个 asp:panel 控件中,并将默认按钮设置为我的 LinkBut​​ton 的 ID,结果发现面板不能将 LinkBut​​tons 作为 DefaultButton。

      但是将链接按钮更改为 ImageButton 并在面板的 DefaultButton 字段中使用其 ID 效果很好。

      <asp:Panel ID="pnlSearch" runat="server" DefaultButton="imbSearch">
      ...
      </asp:Panel>
      

      【讨论】:

      • 它在 Firefox 中对我不起作用,但在 ie 和 chrome 中起作用。任何建议
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-22
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多