小 jQuery 函数杀死了 Infusionsoft 订单上的其他函数

Small jQuery function kills other functions on Infusionsoft order form

我是个 jQuery 新手。我正在尝试修改 Infusionsoft 订单,以将最小值添加到数量输入框。使用订单,您无法修改页面上的任何实际代码(它是自动生成的),但您可以将自己的脚本添加到页脚。

我发现这是为了向输入字段添加最大和最小数量:

<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
  $(document).ready(function() {
    $(".qtyField").attr({
       "max" : 100,
       "min" : 15  
    });
     });
</script>

有效,但如果我单击“更新”按钮更新总价(基于所选数量),我会在控制台中看到此错误:

Uncaught TypeError: Infusion.Ecomm.OrderForms.ajaxSubmitForm is not a function
    at <anonymous>:1:27

...所以我猜添加脚本源会覆盖他们正在使用的任何内容。但同样,我对 jQuery.

几乎一无所知

订单在这里:https://mb931.infusionsoft.app/app/orderForms/ASR-For-Business-Single-License

更新:我能够使用这段代码让它工作:

<script type="text/javascript">
jQuery(document).ready(function(){
  jQuery("input[name=qty_1]").attr({
       "max" : 100,
       "min" : 15  
    });
});
</script>

正确设置最小数量,如果我增加它并点击更新,数量就会正确更新。但是,在我点击更新后,如果我降低数量,最小值不再存在,我可以低于 15。

编辑

我看到了你的编辑...

我好像 <input> 在点击“更新”后被替换了。

尝试设置超时以在单击“更新”后也执行函数:

<script type="text/javascript">

function setMinMax(){
  jQuery("input[name=qty_1]").attr({
       "max" : 100,
       "min" : 15  
    });
}

jQuery(document).ready(function(){
  setMinMax();
  
  jquery(".updateCart").on("click", function(){
    setTimeout(function(){
      setMinMax();
    },500)
  })
  
});
</script>

这是有效的方法:

<script type="text/javascript">
  function updateQuantity(){
    jQuery("input[name=qty_1]").attr('max', 100);
    jQuery("input[name=qty_1]").attr('min', 15);
  }
jQuery(document).ready(function(){
  updateQuantity();
  jQuery(document).bind('DOMNodeInserted',updateQuantity);
});
</script>