2016-04-15 2 views
0

Как получить ключ ввода для выполнения того же действия и кнопки отправки?Если пользователь нажимает клавишу ввода, выполняйте то же действие, что и нажатие на отправку в Javascript

У меня есть код здесь, и я хотел бы форму, чтобы представить, если пользователь нажимает отправить, или нажимает кнопку ввода на клавиатуре

Я попытался с помощью если заявления с клавиатурным 13, но ничего не работает для меня.

Вот мой код JavaScript:

window.addEventListener('load', function(){ 

    // Add event listeners 
    document.getElementById('add-item').addEventListener('click', addItem, false); 
    document.querySelector('.todo-list').addEventListener('click', toggleCompleted, false); 
    document.querySelector('.todo-list').addEventListener('click', removeItem, false); 

    function toggleCompleted(event) { 
     console.log('=' + event.target.className); 
     if(event.target.className.indexOf('todo-item') < 0) { 
      return; 
     } 
     console.log(event.target.className.indexOf('completed')); 
     if(event.target.className.indexOf('completed') > -1) { 
      console.log(' ' + event.target.className); 
      event.target.className = event.target.className.replace(' completed', ''); 
      document.getElementById('add-item').value=''; 
     } else { 
      console.log('-' + event.target.className); 
      event.target.className += ' completed';   

     } 
    } 

    function addItem() { 
     var list = document.querySelector('ul.todo-list'); 
     var newItem = document.getElementById('new-item-text').value; 
     var newListItem = document.createElement('li'); 
     newListItem.className = 'todo-item'; 
     newListItem.innerHTML = newItem + '<span class="remove"></span>'; 
     list.insertBefore(newListItem, document.querySelector('.todo-new')); 
     document.getElementById('new-item-text').value = ""; 
    } 

    function removeItem(event) { 
     if(event.target.className.indexOf('remove') < 0) { 
      return; 
     } 
     var el = event.target.parentNode; 
     el.parentNode.removeChild(el); 
    } 

    function changeTitle() { 
     var title = prompt("change the title"); 
    } 

    function handle(e){ 
    if(e.keyCode === 13){ 
    addItem(); 
    } 
    return false; 
} 

}); 
+0

Если любой из элементов находится в фокусе, и нажата клавиша «enter», она отправит форму. Вам не нужно ничего делать для этого ! – Rayon

+0

@RayonDabre Хмм, он не будет подавать мне, когда я нажимаю клавишу ввода. – Nick

ответ

0

Вы должны использовать KeyDown событие для этого, как показано ниже

document.onkeydown=function(evt){ 
    var keyCode = evt ? (evt.which ? evt.which : evt.keyCode) : event.keyCode; 
    if(keyCode == 13) 
    { 
     //your function call here 
    } 
0

Попробуйте добавить это к вашему набору addEventListeners

document.getElementById('add-item').addEventListener('keydown', handle, false);