3 回答

TA貢獻1860條經驗 獲得超9個贊
所以這很晚了,但是我發現了一個答案,以防萬一它對遇到此線程的任何人有用。
對隱藏元素的值更改不會自動觸發.change()事件。因此,無論您在哪里設置該值,您都必須告訴jQuery觸發它。
function setUserID(myValue) {
$('#userid').val(myValue)
.trigger('change');
}
這樣的話
$('#userid').change(function(){
//fire your ajax call
})
應該能按預期工作。

TA貢獻1842條經驗 獲得超13個贊
由于隱藏的輸入不會在更改時觸發“更改”事件,因此我使用MutationObserver來觸發此操作。
(有時隱藏的輸入值更改是由其他一些您無法修改的腳本完成的)
在IE10及以下版本中不起作用
MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
var trackChange = function(element) {
var observer = new MutationObserver(function(mutations, observer) {
if(mutations[0].attributeName == "value") {
$(element).trigger("change");
}
});
observer.observe(element, {
attributes: true
});
}
// Just pass an element to the function to start tracking
trackChange( $("input[name=foo]")[0] );
- 3 回答
- 0 關注
- 575 瀏覽
添加回答
舉報