2013-04-16 4 views
2

мой контроль asp.net выглядит следующим образом;Предотвращение дефолта не работает при нажатии клавиши

<asp:Button ID="btnLogOut" runat="server" Text="Exit" ClientIDMode="Static" OnClick="btnLogOut_Click" /> 

и js event;

$("#btnLogOut").keyup(function (event) { 
    if (event.which == 13 || event.keyCode == 13) { 
     alert(event.keyCode); 
     $("#btnLogOut").preventDefault(); 
     return false; 
    } 
    else return true; 
}); 

На странице, когда я нажал клавишу ввода, она вызывает кнопку btnLogOut. Чтобы предотвратить это, Я написал выше событие js. alert указывает, что keyCode равен 13, но это не предотвращает функцию щелчка и я выхожу из системы.

Как это исправить? Особенно это происходит в IE

Редактировать: event.preventDefault не работает также.

+0

я думаю, что вам нужно сделать 'event.preventDefault();' –

ответ

6

preventDefault() является метод объекта Event (event), поэтому вам нужно позвонить на этом: event.preventDefault().

Однако в событии keyup ключ уже обработан, так что нет смысла блокировать событие. Сделайте это в keydown.

+0

0,1 идти. + 1 – Jashwant

+1

ключ не работает тоже чувак. –

+0

Он работает с keydown, поскольку keyup не работает в моем случае, кроме меня нужно изменить тип кнопки на кнопку, а не отправить – Praditha

2

Вы должны использовать event.preventDefault(); вместо вызова preventDefault() на самом объекте.

3

Вы не можете отменить в keyup фазе, вы может в keydown.

И использовать event.preventDefault();

1

Yo нужно использовать event.preventDefault()

2

preventDefault используется с объектом события

$("#btnLogOut").keyup(function (event) { 
    if (event.which === 13 || event.keyCode === 13) { 
     alert(event.keyCode); 
     event.preventDefault(); 
     return false; 
    } 
    else return true; 
}); 
1

Попробуйте изменить $("#btnLogOut").preventDefault(); к event.preventDefault();

Смежные вопросы