Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止触发另一个按钮_C#_Jquery_Html_Asp.net - Fatal编程技术网

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

C# 如何防止触发另一个按钮,c#,jquery,html,asp.net,C#,Jquery,Html,Asp.net,我的ASP.net页面中有以下内容: <input type="text" placeholder="Search..." size="30" id="pageLink" /> <br /> <span id="imgGo" class="imgGo floatRight"></span> 当我在文本框中输入某个内容并单击imgGospan时,它工作正常,但如果我按enter键,则会触发另一个面板中的搜索按钮 我如何修改JQuery代码以确保不会

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

<input type="text" placeholder="Search..." size="30" id="pageLink" />
<br />
<span id="imgGo" class="imgGo floatRight"></span>
当我在文本框中输入某个内容并单击
imgGo
span时,它工作正常,但如果我按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>

我想使用不是ASP.net控件的文本框,因为
占位符
属性对我来说很重要。

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

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

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

相同的替代版本

在任何标记上注册为事件:

 onkeydown="pressButtonOnEnter('IdOfMyButton', event);" 
在.js文件中:

function pressButtonOnEnter(buttonId, event) {
    var key = (evt.which) ? evt.which : evt.keyCode;
    if (key == 13) {
        $("#" + buttonId).click();
    }
}

它也在asp.net中工作。例如,您可以简单地将其添加到asp:textbox。

另一个面板中的搜索按钮是否具有
imgGo
类?我注意到您通过jQuery将
.imgGo
作为目标。这将触发任何匹配元素的事件,您可能希望基于唯一的
id
执行此操作。
imgGo
仅用于此实例。您的错误消息有点奇怪
“pnlMedSearch”的DefaultButton必须是IButonControl类型控件的id。
。。是否尝试使用标签作为默认按钮?在示例HTML中,您已经将默认按钮设置为
GoImg
,那么为什么不在面板中添加一个ID为
GoImg
?这应该行得通……我需要为文本框使用
占位符
,而我在ASP.NET中无法使用它。您完全可以在
上使用
占位符=“
属性。例如
谢谢您的回复。
 onkeydown="pressButtonOnEnter('IdOfMyButton', event);" 
function pressButtonOnEnter(buttonId, event) {
    var key = (evt.which) ? evt.which : evt.keyCode;
    if (key == 13) {
        $("#" + buttonId).click();
    }
}