为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery-检测隐藏输入字段上的值更改

jQuery-检测隐藏输入字段上的值更改

慕容708150 2019-10-15 14:28:12
我有一个隐藏的文本字段,其值通过AJAX响应进行更新。<input type="hidden" value="" name="userid" id="useid" />当此值更改时,我想触发一个AJAX请求。谁能建议如何检测更改?我有以下代码,但不知道如何查找值:$('#userid').change( function() {      alert('Change!'); }) 
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

所以这很晚了,但是我发现了一个答案,以防万一它对遇到此线程的任何人有用。


对隐藏元素的值更改不会自动触发.change()事件。因此,无论您在哪里设置该值,您都必须告诉jQuery触发它。


function setUserID(myValue) {

     $('#userid').val(myValue)

                 .trigger('change');

}

这样的话


$('#userid').change(function(){

      //fire your ajax call  

})

应该能按预期工作。


查看完整回答
反对 回复 2019-10-15
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

由于隐藏的输入不会在更改时触发“更改”事件,因此我使用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] );


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 542 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信