微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当隐藏输入的值动态变化时的jQuery addClass

如何解决当隐藏输入的值动态变化时的jQuery addClass

|| 我有一个联系表单,该表单在成功完成sendmail函数后将值发送给隐藏的输入。我想检测此值更改,然后将其用于将类应用于div / paragraph。 最近我问了一个类似的问题,我知道这要求脚本在DOM加载后不断检查文档,但是即使添加.change()之后,它似乎也不希望添加该类。 这是jQuery:
$(document).ready(function() {
   $(\"#acf_success_sent\").change(function(){
    if ($(\"#acf_success_sent\").val() == \"1\"){
     $(\"#acf_verified\").addClass(\'gone\');
     }
   });

 });
任何帮助都会很棒。这是表单测试版本的链接,以备您感兴趣时使用,只要成功发送http://seeshell.me/forms/contact.PHP后,所有经过验证的符号都不会消失,但一切正常     

解决方法

        当代码更新
<input>
元素的值时,将不会触发\“ change \”事件,因此您注册的处理程序将不会运行。但是,您可以做的是从看门狗开火“更改”:
var watchdog = setInterval(function() {
  if ($(\'#acf_success_sent\').val() !== originalValue)
    $(\'#acf_success_sent\').trigger(\'change\');
},100);
如何设置“ originalValue”取决于您的应用程序。例如,您可以保留一个单独的\“。data()\”值,并注意保存的值是否不同于当前的\“ value \”属性。或者,您可以将值保留在闭包变量中:
var watchdog = (function() {
  var $acfSuccessSent = $(\'#acf_success_sent\'),cachedValue = $acfSuccessSent.val();
  return function() {
    if (cachedValue !== $acfSuccessSent.val())
      $acfSuccessSent.trigger(\'change\');
  };
})();
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。