我在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代码以确保不会发生或添加代码隐藏以确保仅在imgGo
文本框具有的pageLink
文本框时按下输入按钮才会触发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.
我收到以下错误:
placeholder
我想使用不是ASP.net控件的文本框,因为在我的情况下{{1}}属性很重要。
答案 0 :(得分:2)
我保留了相同的HTML内容并将我的Jquery修改为以下内容:
$("#medlineSearch").keypress(function (event) {
if (event.which == 13) {
$("#imgGo").click();
return false;
}
});
添加return false;
确保它不会在页面上调用任何其他内容。
答案 1 :(得分:1)
相同的替代版本。
在任何标签上注册为活动:
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中。