ASP.Net страница ввода ключ, вызывающий пост обратно
У меня есть страница aspx, которая отправляет обратно, когда она не должна. На странице есть два текстовых поля, два списка и две кнопки. если в любой точке нажата клавиша ввода, первая кнопка получает фокус и "щелкает", что приводит к потере выбора в списках.
Как мне отключить это? Есть множество учебников о том, как захватить кнопку ввода и выполнить метод, но я мог бы найти один из них о том, как просто отключить аккуратную функцию "позвольте мне схватить первую найденную кнопку и щелкнуть по ней", упомянутую выше.
6 ответов
- Вы можете установить DefaultButton на форму или панель. Таким образом, у вас есть полный контроль над тем, что происходит.
- Установите UseSubmitBehavior= "False" на своих кнопках. Это отключает "AutoPostback" при вводе.
Я бы предпочел второе, если бы я хотел полностью запретить Postbacks на Enter.
Вы используете JQuery?
если так:
$(document).keypress(function(e)
{
if(e.keyCode === 13)
{
e.preventDefault();
return false;
}
});
Используйте приведенный ниже код для отключения клавиши ввода, вызывающей обратную передачу. Этот фрагмент кода блокирует клавишу ввода во всех браузерах 4.0 выше, кроме случаев, когда ввод нажат в текстовой области или на самой кнопке Submit.
<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>
Только поместите это на свой элемент управления ASP.Net TextBox:
<asp:TextBox ID="TextBox1" runat="server"
onkeydown = "return (event.keyCode!=13);" >
</asp:TextBox>
Это стандартное поведение веб-приложения. Вы можете воспользоваться одним из найденных руководств и скрыть это поведение, просто отказавшись от отправки.