我怎样才能防止回发,同时仍然允许javascript运行
本文关键字:运行 javascript | 更新日期: 2023-09-27 18:06:03
网页包含:
<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。在Chrome中使用回车键提交此字段会导致整个页面重新加载。
我试着在后面的代码中添加这个,但它阻止javascript触发:
participant.Attributes.Add("onkeydown", "return (event.keyCode!=13);");
我怎么能解决这个问题,使回车键不引起回发,但仍然触发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();
}
});
});