Я пытаюсь отключить textarea от обработки события клавиатуры, когда пользователь нажимает клавишу ввода клавиатуры, когда текстовое поле пусто с помощью угловых символов. Мне удалось отключить кнопку отправки, когда текстовое поле пуст, но я пытаюсь отключить текстовое поле, когда из события ввода, когда текстовое поле пуст.
Это моя попытка:
<div class="descriptionarea">
<textarea ng-model="trackTxt" id="input" ></textarea>
<span class="buttonfortxtarea">
<button ng-disabled="!trackTxt" class= "btn btn-mini description_submit" id="new-chat-button">Submit</button></span>
</div>
Когда я нажимаю Enter из своего текстового поля, он запускает событие, используя следующий код
document.getElementById('input').addEventListener('keyup', function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) { // enter key press
send();
}
});
Вышеприведенный код работает, пустое или нет.
Editted:
В моих приложениях angularjs
app.controller('TodoCtrl',function($scope){
//handle javascript enter event on key up
// function TodoCtrl($scope) {
$scope.trackTxt;
$scope.send = function($event){
alert('TEST');
}
$scope.isEmpty = function(param){
return param.trim().length === 0;
}
//}
});
В файле jsp
<div ng-controller="TodoCtrl">
<textarea ng-keyup="$event.keyCode == 13 && !isEmpty(trackTxt) && send($event)" ng-model="trackTxt" id="input" ></textarea>
<span class="buttonfortxtarea">
<button ng-disabled="!trackTxt" ng-click="send($event)" class= "btn btn-mini description_submit" id="new-chat-button">Submit</button></span>
</div></div>
Пожалуйста, как я могу использовать angularjs, чтобы предотвратить событие ввода, когда текстовая область пуста.
Вы можете использовать ng-keyup для присоединения функции к нажатию клавиши ввода,
ng-keyup="$event.keyCode == 13 && functionToCall()"
Вот демонстрация,
благодаря
Вы можете просто проверить, не пуст ли он...
document.getElementById('input').addEventListener('keyup', function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13 && $(this).val() != "") { // enter key press
send();
}
});
Это также может работать:
document.getElementById('input').addEventListener('keyup', function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13 && $(this).val().length <= 0) { // enter key press
send();
}
});
Чтобы предотвратить использование по умолчанию, используйте метод preventDefault()
document.getElementById('input').addEventListener('keyup', function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13 && $(this).val().length <= 0) { // enter key press
e.preventDefault(); //This avoid the enter...
}
});
Как насчет sendChat()...
document.getElementById('input').addEventListener('keyup', function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13 && $(this).val().length <= 0) { // enter key press
e.preventDefault(); //This avoid the enter...
}
else if(code == 13 && $(this).val().length > 0) {
sendChat();
}
});