У меня есть скрытое текстовое поле, значение которого обновляется через ответ AJAX.
<input type="hidden" value="" name="userid" id="useid" />
Когда это значение изменяется, я хотел бы запустить AJAX-запрос. Кто-нибудь может посоветовать, как обнаружить изменение?
У меня есть следующий код, но я не знаю, как искать значение:
$('#userid').change( function() {
alert('Change!');
})
Ответы:
Так что это слишком поздно, но я нашел ответ на тот случай, если он пригодится всем, кто сталкивается с этой веткой.
Изменения значения для скрытых элементов не запускают автоматически событие .change (). Поэтому, где бы вы ни устанавливали это значение, вы также должны указать jQuery, чтобы оно вызывалось.
Раз это так,
должен работать как ожидалось.
источник
.trigger()
правило, лучше использовать просто вызовchange()
?change
событие, вы должны добавить код,setUserID()
чтобы проверить, действительно ли значение изменяется.if ($('#userid').val() != myVaule) { // set val() and trigger change }
Поскольку скрытый ввод не вызывает событие «изменение» при изменении, я использовал MutationObserver, чтобы вызвать это вместо этого.
(Иногда скрытые изменения входных значений производятся другими скриптами, которые вы не можете изменить)
Это не работает в IE10 и ниже
источник
input[type=hidden]
trigger('change')
меня это не сработало, поэтому я создал CustomEvent, зарегистрировал его, а затемelement.dispatchEvent(myCustomEvent)
Вы можете просто использовать функцию ниже, вы также можете изменить тип элемента.
Изменения значения для скрытых элементов не запускают автоматически событие .change (). Поэтому, где бы вы ни устанавливали это значение, вы также должны указать jQuery, чтобы оно вызывалось.
HTML
JAVASCRIPT
должен работать как ожидалось.
http://jsfiddle.net/7CM6k/3/
источник
источник
Это можно использовать
Object.defineProperty()
для того, чтобы переопределить свойство 'value' элемента input и сделать что-нибудь во время его изменения.Object.defineProperty()
позволяет нам определять геттер и сеттер для свойства, таким образом управляя им.https://jsfiddle.net/bvvmhvfk/
источник
В этом примере возвращается значение поля черновика каждый раз, когда скрытое поле черновика меняет свое значение (браузер Chrome):
источник
Основываясь на ответе Виктора , вот реализация, которую вы можете вызвать один раз для данного скрытого элемента ввода, чтобы гарантировать, что последующее событие изменения будет запущено при изменении значения элемента ввода:
Назовите это в документе, готовом так:
источник
Хотя этой теме уже 3 года, вот мое решение:
источник