Я хотел бы превратить этот блок кода в функцию keydown, которую я мог бы вызвать из html-формы

#javascript #html #forms #function

Вопрос:

   SetPoint :<input id="input" type="text" name="setPoint" onkeydown="return keyispressed(event);"    max="5" min="1" /><br /> 



 SetPoint :<input id="input" type="text" name="setPoint" onkeydown="return keyispressed(event);"    max="5" min="1" /><br /> 
    
    
    input.addEventListener("keydown", function(e){
        var charValue= String.fromCharCode(e.keyCode);
        if(((!/^(d )?([.]?d{0,1})?$/.test(this.value   e.key)) amp;amp; (e.which != 8 )))
        {
            e.preventDefault()
      }
    })
 

Я хочу, чтобы форма ввода html-кода setpoint вызывала функцию keydown, а затем выполняла следующий код спасибо за любую оказанную помощь

Ответ №1:

Несколько вещей:

  • Ваш HTML неверен, у вас есть id дубликаты, которые должны быть уникальными.
  • Вы должны выбрать все входные данные, пройтись по списку и добавить прослушиватель событий к каждому из них
 document.querySelectorAll('input').forEach(input => {
  input.addEventListener("keydown", function(e) {
    var charValue = String.fromCharCode(e.keyCode);
    if (((!/^(d )?([.]?d{0,1})?$/.test(this.value   e.key)) amp;amp; (e.which != 8))) {
      e.preventDefault()
    }
  })
}) 
 SetPoint :<input type="text" name="setPoint" max="5" min="1" /><br /> SetPoint :<input type="text" name="setPoint" max="5" min="1" /><br /> 

Комментарии:

1. Отлично работает благодаря @Spectric