输入键导致不必要的 post-back
Enter key causes the unnecessary post-back
我在 vb.net 有一个网络申请表。
当我单击单选按钮时,服务器上的回发为 运行。如果我同时按下回车键,它会导致另一个回发到服务器。我如何防止第二次回发?
<td class="tdClassic" id="tdCT">
<asp:RadioButton ID="rbSingle" runat="server" Text="Singl" AutoPostBack="true" GroupName="grpT" />
<asp:RadioButton ID="rbMultiple" runat="server" Text="Multiple" AutoPostBack="true" GroupName="grpTrainer" />
</td>
如果您使用的是 jQuery,您可以使用以下方式阻止结束键提交表单:
$(document).keypress(function(e)
{
if(e.keyCode === 13)
{
e.preventDefault();
return false;
}
});
如果不行,这可能有效:
<script language="JavaScript">
var nav = window.Event ? true : false;
if (nav) {
window.captureEvents(Event.KEYDOWN);
window.onkeydown = NetscapeEventHandler_KeyDown;
} else {
document.onkeydown = MicrosoftEventHandler_KeyDown;
}
function NetscapeEventHandler_KeyDown(e) {
if (e.which == 13 && e.target.type != 'textarea' && e.target.type != 'submit') {
return false;
}
return true;
}
function MicrosoftEventHandler_KeyDown() {
if (event.keyCode == 13 && event.srcElement.type != 'textarea' &&
event.srcElement.type!= 'submit')
return false;
return true;
}
</script>
或者如果您在页面上有一个按钮,那么 UseSubmitBehavior
可能是更好的解决方案:
<asp:button id="Button1" text="Submit" onclick="SubmitBtn_Click" usesubmitbehavior="false" runat="server"/>
见https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx
我在 vb.net 有一个网络申请表。 当我单击单选按钮时,服务器上的回发为 运行。如果我同时按下回车键,它会导致另一个回发到服务器。我如何防止第二次回发?
<td class="tdClassic" id="tdCT">
<asp:RadioButton ID="rbSingle" runat="server" Text="Singl" AutoPostBack="true" GroupName="grpT" />
<asp:RadioButton ID="rbMultiple" runat="server" Text="Multiple" AutoPostBack="true" GroupName="grpTrainer" />
</td>
如果您使用的是 jQuery,您可以使用以下方式阻止结束键提交表单:
$(document).keypress(function(e)
{
if(e.keyCode === 13)
{
e.preventDefault();
return false;
}
});
如果不行,这可能有效:
<script language="JavaScript">
var nav = window.Event ? true : false;
if (nav) {
window.captureEvents(Event.KEYDOWN);
window.onkeydown = NetscapeEventHandler_KeyDown;
} else {
document.onkeydown = MicrosoftEventHandler_KeyDown;
}
function NetscapeEventHandler_KeyDown(e) {
if (e.which == 13 && e.target.type != 'textarea' && e.target.type != 'submit') {
return false;
}
return true;
}
function MicrosoftEventHandler_KeyDown() {
if (event.keyCode == 13 && event.srcElement.type != 'textarea' &&
event.srcElement.type!= 'submit')
return false;
return true;
}
</script>
或者如果您在页面上有一个按钮,那么 UseSubmitBehavior
可能是更好的解决方案:
<asp:button id="Button1" text="Submit" onclick="SubmitBtn_Click" usesubmitbehavior="false" runat="server"/>
见https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx