2015-08-19 6 views
1

Мне нужно отправить форму, когда я нажимаю клавишу ввода, но этот код отправляется, когда я все еще печатаю свое сообщение. Это должно позволить мне закончить ввод текста и нажать Enter для отправки, но не разрешить ему отправлять, если текст пуст.Отправить с помощью клавиши ввода и предотвратить отправку пустого текста

(function() { 
    var age = document.getElementById('age'); 
    age.addEventListener('keypress', function(event) { 
     if (event.keyCode == 13) { 
      event.preventDefault(); 
      if (age.value > 20) { 
       document.getElementById('post').click(); 
      } 
     }else { 
       document.getElementById('post').click(); 
      } 
    }); 
}()); 

А также отметьте это, чтобы добавить несколько кодов клавиш для shft + enter, чтобы я мог продолжить свое сообщение.

var done = disabled; 
if (event.keyCode == 13) document.getElementById('post').click(); 
else if(e.keyCode==16 && e.keyCode==13)document.getElementById('post').disabled == done;` 

ответ

0

Вы не должны запускать document.getElementById('post').click();, если нажатие клавиши не является ввод. Вы можете исправить это, просто удалив инструкцию else в коде.

1

Вы отправляете в if и else, вне зависимости от того, какой ключ нажал, вы отправляете форму. Удалить еще:

(function() { 
    var age = document.getElementById('age'); 
    age.addEventListener('keypress', function(event) { 
     if (event.keyCode == 13) { 
      event.preventDefault(); 
      if (age.value > 20) { 
       document.getElementById('post').click(); 
      } 
     } 
    }); 
}()); 
Смежные вопросы