Добавление новых INPUT по нажатию ENTER
Я написал html-код
<ol id="list"> <li><input class="list" maxlength="30"></li> </ol> к нему добавил JavaScript
$('.list').keypress(function(event){
var keyCode = event.keyCode ? event.keyCode :
event.charCode ? event.charCode :
event.which ? event.which : void 0;
if(keyCode == 13)
{
$('#list').append('<li><input class="list" maxlength="30"></li>');
}
});
В итоге когда я нажимаю на ENTER, то появляется новое поле INPUT. Но если я нажимаю на ENTER внутри добавленного поля, то скрипт это событие не обрабатывает. Как сделать так, чтобы добавление по ENTER работало и для имеющегося изначально и для добавляемых INPUT? |
$('#list').on('keypress', '.list', function(event){ //вешаем на верхний контейнер, но события ожидаем именно от '.list'
var keyCode = event.keyCode || event.charCode || event.which;
if(keyCode == 13)
{
$( '<li><input class="list" maxlength="30"></li>' ).insertAfter( this ).find('.list').focus(); //возможно не нужная правка)
}
});
|
Спасибо! Вы сразу и проблему фокуса в новом INPUT решили.
|
Может подскажите, как вычислять количество введённых символов в активном INPUT?
|
$('#list').on('input', '.list', function(event){
var length = this.value.length;
});
|
Aetae, говорят event.which кроссбраузерное
|
А как отловить нажатие Ctrl + Enter?
|
paveltkachev,
if(event.ctrlKey && event.which === 13) Rise, ну и хорошо, мопед не мой.) |
Подскажите, пожалуйста, ещё. Как удалить <li><input class="list" maxlength="30"></li>, то есть и input в котором совершаются действия и его родителя, если пользователь нажимал бэкспейс и удалили весь текст и снова нажал бэкспейс? Это ткак в Word, получается.
|
Подскажите, какой keyCode у кнопок del и backspace?
|
| Часовой пояс GMT +3, время: 01:00. |