Как изменить значение ввода [type = number] при нажатии клавиши через Javascript?

1

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

Я также хочу, чтобы keycode менял значение пары input[type=number], либо вычитал, либо добавлял значение путем инкрементальности -1/+ 1 при каждом нажатии клавиши. Я сделал несколько поисков, но не мог дать мне окончательного руководства.

Вот что у меня в заголовке.

function runScript(e){
if(e.keyCode == 32 && e.shiftKey){
   gameclock();
}}

и по моему html

<body onkeydown="runScript(event)"> 
...
<input id="whateverID1" type="number" value="00">

Скажем, если я хочу добавить #whateverID1 значение, нажав = и вычтем #whateverID1 значение, нажав -, оцените любое руководство по тому, как я могу это достичь. Большое спасибо.

Я пробовал это, но, похоже, не работает.

var CounterName = 0; 
if(e.keyCode == 49 ) {
document.getElementById('whateverID1').value = ++CounterName;
} 
if(e.keyCode == 50 ) { 
document.getElementById('whateverID1').value = --CounterName; 
}
Теги:

1 ответ

2
Лучший ответ

Во-первых, использование onclick/onkeydown в html обычно является плохой практикой. Скорее, дайте элементу id или класс и вместо этого добавьте eventListener из JS.

Попробуйте это ниже, jsfiddle работает и должен позволить вам делать то, что вы хотите:

document.getElementById("bodyId").addEventListener("keydown", function (event) {
  var CounterName = 1;
  var currentValue = parseInt(document.getElementById('whateverID1').value);

  if(event.keyCode == 187) {
    document.getElementById('whateverID1').value = currentValue + CounterName;
  }
  else if(event.keyCode == 189) { 
    document.getElementById('whateverID1').value = currentValue - CounterName;
  }
});

http://jsfiddle.net/Maxmaxs5/7thqo0zs/7/

Если это поможет или вам нужно что-нибудь еще, дайте мне знать!

  • 0
    Спасибо @ kieran-mcwilliamw. И быстрый здесь, if(event.key == "=" && event.shiftKey ) не будет работать для комбинации клавиш?
  • 0
    Хорошо, по какой-то причине, когда вы пытаетесь сделать комбинацию клавиш, key не любит работать, поэтому keyCode на самом деле лучше. Попробуйте if(event.keyCode == 187 && event.shiftKey) . Код для = 187, а для - 189. Если вам нужно найти коды клавиш для других ключей, вы можете найти их или просто сделать console.log(event.keyCode) . Коды символов и коды клавиш не совпадают, что, я уверен, может легко запутать людей. Надеюсь, что это исправит, если так, дайте мне знать!
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню