ASP.Net страница ввода ключ вызывая пост обратно - PullRequest
22 голосов
/ 18 ноября 2010

У меня есть страница aspx, которая отправляет обратно, когда она не должна.на странице есть два текстовых поля, два списка и две кнопки.если в любой точке нажата клавиша ввода, первая кнопка получает фокус и «щелкает», что приводит к потере выбора в списках.

Как отключить это?Есть множество учебников о том, как захватить кнопку ввода и выполнить метод, но я мог бы найти один из них о том, как просто отключить аккуратную функцию «позвольте мне взять первую найденную кнопку и щелкнуть по ней», упомянутую выше.

Ответы [ 6 ]

32 голосов
/ 18 ноября 2010
  • Вы можете установить DefaultButton на Форме или Панели. Таким образом, у вас есть полный контроль над тем, что происходит.
  • Set UseSubmitBehavior = "False" на ваших кнопках. Это отключает «AutoPostback» при вводе.

Я бы предпочел второе, если бы я хотел полностью запретить Postbacks при вводе.

25 голосов
/ 18 ноября 2010

используете ли вы jQuery?

, если это так:

$(document).keypress(function(e)
{
    if(e.keyCode === 13)
    {
        e.preventDefault();
        return false;
    }
});
7 голосов
/ 22 января 2013

Используйте приведенный ниже код для отключения клавиши ввода, вызывающей обратную передачу.Этот фрагмент кода блокирует клавишу ввода во всех браузерах 4.0 выше, кроме случаев, когда клавиша ввода нажата в текстовой области или на самой кнопке отправки.

<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>
2 голосов
/ 24 февраля 2016

Только наденьте это на свой элемент управления ASP.Net TextBox:

<asp:TextBox ID="TextBox1" runat="server"
   onkeydown = "return (event.keyCode!=13);" >
</asp:TextBox>
1 голос
/ 15 декабря 2015
<body onkeydown = "return (event.keyCode!=13)">
1 голос
/ 18 ноября 2010

Это поведение веб-приложения по умолчанию, вы можете воспользоваться одним из найденных руководств и скрыть его, просто отказавшись от отправки.

...