我有我的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
跨度它工作正常,但如果我按下回车键,我的搜索按钮,在另一个面板被触发。
如何修改我的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
属性对我来说很重要。
其他面板中的搜索按钮是否具有'imgGo'类?我注意到你正在通过jQuery来定位'.imgGo'。这将触发任何匹配元素的事件,您可能想要基于唯一的'id'来代替。 – DGibbs 2014-12-02 17:30:26
'imgGo'仅用于此实例。 – SearchForKnowledge 2014-12-02 17:37:03
你的错误信息有点奇怪''pnlMedSearch'的DefaultButton必须是IButtonControl类型的控件的ID。你想使用标签作为默认按钮吗?在你的HTML示例中,你已经将默认按钮设置为“GoImg”,那么为什么不只是将''添加到ID为'GoImg'的面板呢?这应该工作... –
DGibbs
2014-12-03 09:16:32