В jQuery можно отслеживать изменение значения скрытого поля (input type="hidden") с помощью метода change, однако напрямую это не сработает, так как скрытые поля не триггерят событие change. Вместо этого нужно вручную вызывать событие после изменения значения.
Пример:
// Установка значения и вызов события вручную
$('#myHiddenInput').val('new value').trigger('change');
// Отслеживание изменений
$('#myHiddenInput').on('change', function () {
console.log('Значение изменено на:', $(this).val());
});
Если вы изменяете значение через JavaScript, не забудьте вызывать trigger('change').
Альтернативный способ через MutationObserver
Для отслеживания любых изменений элемента можно использовать MutationObserver. Он работает даже для скрытых элементов.
Пример:
// Найти скрытый input
const hiddenInput = document.getElementById('myHiddenInput');
// Создать MutationObserver
const observer = new MutationObserver((mutationsList) => {
mutationsList.forEach((mutation) => {
if (mutation.type === 'attributes' && mutation.attributeName === 'value') {
console.log('Новое значение:', hiddenInput.value);
}
});
});
// Настроить observer на отслеживание атрибутов
observer.observe(hiddenInput, { attributes: true });
Этот подход подходит, если значение скрытого поля изменяется напрямую, например через element.setAttribute('value', 'new value').
















