Вообще говоря, использование атрибутов html для событий javascript является плохой практикой.Так как вы все равно используете jQuery, вы должны сделать что-то подобное во внешнем скрипте:
$('#company').on('change keyup input', function() { getproduct(this); });
Сейчас я разбью его.
$('#company')
выбирает элемент с идентификатором «компания».Это позволяет вам работать с этим объектом с помощью javascript, изменив его или подключив прослушиватели событий.
.on(...)
присоединяет прослушиватели событий к выбранным объектам.Его можно использовать несколькими различными способами, но самым основным способом (который мы здесь используем), он принимает два параметра, первый - это список событий, разделенных пробелом, и второй - функция обратного вызова.выполняется, когда эти события происходят на выбранном элементе.
change
- это событие, которое запускается, когда элемент ввода изменил свое значение и затем потерял фокус.Это может быть полезным событием, если пользователь не изменил ввод, набрав (возможно, вставив через контекстное меню).
keyup
- это событие, которое вызываетсякогда клавиша нажата, а затем отпущена.См. Также keydown
и keypress
.
input
- это классное новое событие HTML5, предназначенное для прослушивания пользовательского ввода элемента.Это важно использовать, потому что он был разработан специально для того, что вы пытаетесь достичь.(Примечательно, что событие ввода запускается при нажатии кнопок со стрелками вращения на числовых типах ввода.) Вы по-прежнему хотите использовать другие события в качестве запасных вариантов в случае, если событие ввода не поддерживается в браузере пользователя.