2015-10-27 7 views
1

Мне было интересно, как я могу отслеживать, удастся ли пользователям нажать клавишу «Backspace» или «Удалить» в поле ввода. После чего я добавляю к переменной, называемой count, каждый раз, когда нажимаются эти кнопки. В настоящее время у меня есть этот код, но он, похоже, не работает; любая помощь очень ценится, спасибо.Отслеживание, если нажатие клавиши возврата или удаления в поле ввода

var Count = 0; 

var input = document.getElementById('display'); 

input.onkeydown = function() { 
    var key = event.keyCode || event.charCode; 

    if(key == 8 || key == 46) 
     Count++; 
     return false; 
}; 
+5

Вы всегда возвращаете 'false'. Оберните условное выражение в '{}': http://jsfiddle.net/a15tfq9o/ – pawel

+2

На самом деле всегда обертывайте условные выражения, чтобы в итоге не возникало таких проблем. – charlietfl

+0

Вы пытаетесь предотвратить ввод, если эти ключи используются? Непонятно, какова ваша цель – charlietfl

ответ

3

несколько строк внутри условной или петли, и т.д. должны быть обернуты в фигурные скобки:

if(key == 8 || key == 46) 
{ 
    Count++; 
    return false; 
} 

Вы также хотите добавить по умолчанию return true в последней строке, чтобы дифференцировать вошли ли вы если или нет.

2

Попробуйте этот подход:

var count = 0; 

var input = document.getElementById('display'); 

input.onkeydown = function() { 
    var key = event.keyCode || event.charCode; 

    if(key !== 8 && key !== 46) 
     return true; 

    count++; 
}; 
  1. Не начать свои имена переменных с заглавной буквы, если они не являются объектные прототипы, которые вы собираетесь создать экземпляр, то есть. var count = new Count(), где вы ранее определили прототип Count объекта

  2. Всегда использовать строгий компаратор, как === и !==, не просто использовать == и !=

  3. Проверить отрицательный первый, и если ваше состояние возвращает истину не соответствует. Затем выполните свой код, в вашем случае count++

 Смежные вопросы

  • Нет связанных вопросов^_^