3 回答

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

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
由于隱藏的輸入不會(huì)在更改時(shí)觸發(fā)“更改”事件,因此我使用MutationObserver來觸發(fā)此操作。
(有時(shí)隱藏的輸入值更改是由其他一些您無法修改的腳本完成的)
在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 關(guān)注
- 574 瀏覽
添加回答
舉報(bào)