c# - 如何防止触发另一个按钮

标签 c# jquery html asp.net

我的 ASP.net 页面中有以下内容:

<input type="text" placeholder="Search..." size="30" id="pageLink" />
<br />
<span id="imgGo" class="imgGo floatRight"></span>

JQuery:

$('.imgGo').click(function () {
    var strString = $("#pageLink").val()
    var strSearch = "http://www.google.com/search=";
    var url = strSearch + strString;
    window.open(url, '_blank');
    return false;
});

$("#pageLink").keyup(function (event) {
    if (event.keyCode == 13 || event.which == 13) {
        $(".imgGo").click();
    }
});

当我在文本框中输入内容并单击 imgGo 范围时,它工作正常,但如果我按 Enter 键,则会触发另一个面板中的搜索按钮。

如何修改 JQuery 代码以确保不会发生这种情况,或添加代码隐藏以确保仅在 pageLink 时按下 Enter 按钮时触发 imgGo > 文本框有焦点吗?

我尝试了以下操作,但没有成功,因为 imgGo 不是按钮:

<asp:Panel ID="pnlMedSearch" runat="server" DefaultButton="GoImg">
    <!--<input type="text" placeholder="Search..." size="30" id="p2" />-->
    <asp:TextBox Width="30" ID="pageLink" runat="server" />
    <br />
    <!--<span id="imgGo" class="imgGo floatRight"></span>-->
    <asp:Label ID="imgGo" CssClass="imgGo floatRight" runat="server" />
</asp:Panel>

我收到以下错误:

The DefaultButton of 'pnlMedSearch' must be the ID of a control of type IButtonControl.

我想使用不是 ASP.net 控件的文本框,因为 placeholder 属性在我的情况下很重要。

最佳答案

我保留了相同的 HTML 内容并将 Jquery 修改为以下内容:

$("#medlineSearch").keypress(function (event) {
        if (event.which == 13) {
            $("#imgGo").click();
            return false;
        }
    });

添加return false;确保它没有调用页面上的任何其他内容。

关于c# - 如何防止触发另一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255385/

相关文章:

java - Swing 对话框 html 格式 'cutting off' 一半内容

html - 我如何设定一个人可以再次投票的时间?

c# - 了解使用单一职责原则的实际好处

c# - ASP.NET 应用程序显示 Windows 服务进度

c# - 可以使用 LINQ 从字符串中提取关键字吗?

javascript - Backbone : Cannot call method 'bind' of undefined

c# - 如何获取 TFS 集合中所有项目的名称?

javascript - 如何使用 jQuery 解析 JSON

javascript - 如何使用 javascript 和 html 防止表格中的第一行

css - 样式应用到错误的地方