Używam obszaru tekstowego w zwykłej aplikacji do czatu. Chciałbym włączyć powrót karetki tylko wtedy, gdy użytkownik kliknie shift + return, i przesłać formularz, gdy użytkownik samodzielnie kliknie klawisz Return.Jak włączyć powrót karetki z przesunięciem + tylko zwróceniem
Używam dyrektywy ngKaydown. Problem polega na tym, że po naciśnięciu klawisza Enter wiadomość zostanie wysłana poprawnie, tekst zostanie wyczyszczony, a następnie zostanie wstawiony powrót karetki. Oznacza to wydarzenie utrzymuje propagować ...
Oto kod HTML:
<textarea ng-model="messageTyped" ng-keydown="checkReturn($event)"></textarea>
i oto kod angularjs:
function chatController($scope, ChatService) {
$scope.messages = ChatService.messages
$scope.checkReturn = function(event) {
if (event.keyCode == 13 && !event.shiftKey) {
event.stopPropagation() // <------ this line seems to have no effect
// submit the message:
if ($scope.messageTyped) {
ChatService.SendMessage($scope.messageTyped)
$scope.messageTyped = ""
}
}
}
}
Nie wiem, co mi brakuje ... Dzięki za pomoc !
Przeglądarka otrzymała kod dostępu (i zareagował na nią), zanim to wydarzenie został zwolniony. Powiedziałbym, że zatrzymujesz propagację, która już się odbyła :). – mingos