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

63lcw9qa  于 2022-12-03  发布在  jQuery
关注(0)|答案(1)|浏览(159)

我有一个联系人表单,它在成功完成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

juud5qan

juud5qan1#

code 更新<input>元素的值时,不会触发“change”事件,因此您注册的处理程序不会运行。但是,您可以从一个监视器中触发“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');
  };
})();

相关问题