[英]How can I prevent postback while still allowing javascript to run?
此Asp.Net页的一部分包含以下内容:
<asp:Panel runat="server" DefaultButton="get">
Enter Employee Name or Click Search to Return All:
<asp:TextBox runat="server" ID="participant" ></asp:TextBox>
<asp:Button runat="server" ID="get" UseSubmitBehavior="false" Text="Search" />
</asp:Panel>
以此为动力:
$(document).ready(function () {
$("#get").click(function (e) {
e.preventDefault();
document.getElementById('<%= userTable.ClientID %>').style.display = "block";
getUserNames();
});
$("#content_contentPlaceHolder_participant").keypress(function (event) {
if (event.keyCode == 13) {
$("#get").click();
}
});
});
除Chrome之外,此功能均可在其他地方使用。 使用Enter键在Chrome中提交此字段会导致整个页面重新加载。
我尝试在后面的代码中添加此代码,但它阻止了javascript触发:
participant.Attributes.Add("onkeydown", "return (event.keyCode!=13);");
如何解决此问题,以便Enter键不会导致回发,但仍会触发JS?
我通过添加一个额外的preventDefault()
解决了该问题。
$(document).ready(function () {
$("#get").click(function (e) {
e.preventDefault();
document.getElementById('<%= userTable.ClientID %>').style.display = "block";
getUserNames();
});
$("#content_contentPlaceHolder_participant").keypress(function (event) {
if (event.keyCode == 13) {
event.preventDefault(); // <-- added this line
$("#get").click();
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.