Каждый день у меня есть трекер шагов «здоровье и фитнес», который нужно вводить на работе. Я пытаюсь использовать TamperMonkey для автоматизации большей части этого. Однако у меня возникли проблемы с получением поля ввода для проверки моего «значения».
Выполняю консольную команду:
document.getElementById("self-enter-steps-input").value = 3000;
который дает:
Однако, когда я нажимаю «Сохранить» вручную, я получаю следующую ошибку:
Если я программно нажму «Сохранить», окно закроется, но номер не зарегистрируется. Если я нажму «возврат» или наберу дополнительный «0» вручную, все поле будет проверено, и оно сохранит все значение, если я нажму «Отправить».
Я также пытался ввести значение в виде строки, т.е.
document.getElementById("self-enter-steps-input").value = "3000";
Поле проверяется, но значение не записывается. Однако простой возврат или дополнительное число, введенное вручную, создает запись всего поля.
Я безуспешно пытался смоделировать события «нажатия клавиши». Я новичок в JS, поэтому любая помощь приветствуется.
@SathishChelladurai Почему еще вы видите «3000» в поле ввода?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Возможно, поле проверяется на определенное событие, например change. Попробуйте запустить его после установки значения
var inputElement = document.getElementById("self-enter-steps-input");
var e = document.createEvent('HTMLEvents');
inputElement.value = 3000;
e.initEvent('change', false, true);
inputElement.dispatchEvent(e);
Возможно, вам потребуется запустить прослушиватель изменений вручную, отправив событие change вручную:
const steps = document.getElementById("self-enter-steps-input");
steps.value = "3000";
const change = new InputEvent('change', { bubbles: true });
steps.dispatchEvent(change);
Судя по всему, проверка ввода происходит либо на change, blur (или, альтернативно, на focusout, потому что blur не будет всплывать), либо на input. Пожалуйста, проверьте свои инструменты разработчика, какое событие действительно прослушивается, и соответствующим образом скорректируйте код, который я дал.
Оба ответа были правильными, мне нужно было отправить событие «изменить».
Вы проверили правильность идентификатора? JS чувствителен к регистру