javascript - Javascript 可以通过编程方式模拟 "keyup"吗?

标签 javascript jquery

我有一个带有优惠券文本字段的销售页面。 对于我的影响者事件,我为每个新的影响者创建了一张新优惠券。

因为我想让他们的生活变得轻松,我编写了一些 JavaScript 代码,用 url 参数中的促销代码预填充销售页面的“优惠券”文本字段 mysite.com/mysalepage?coupon=NAME_OF_INFLUENCER

但人们也可以在没有影响者的情况下到达此销售登陆页面,并自行输入在我们的社交页面中找到的优惠券代码。 coupon field

当访问者在文本字段中输入优惠券代码时,它会隐藏价格和付款按钮并显示新价格和新付款按钮。

promo code typed by hand

这些显示/隐藏功能是由“Keyup”触发的,当访问者输入促销代码时它可以正常工作。

不幸的是,当我的 javascript 代码从我的 url 参数填充优惠券文本字段时,它不起作用。

因此,我尝试通过代码在我的页面上创建一些不同的事件并触发它以显示/隐藏促销元素。我尝试了“滚动、聚焦、聚焦等”...

当我要求这样做时,代码聚焦于元素,但它不会被我显示/隐藏促销元素的代码触发。

这是我的代码:

< script type = "text/javascript"
language = "Javascript" >
  // Function to hide/show the table based on the values of inputs
  function toggleTable() {


    $('#hideThis').toggle($('#coupon').val() !== 'JDCM' && $('#coupon').val() !== 'PROMOGH2019');
    $('#hideThis3').toggle($('#coupon').val() !== 'JDCM' && $('#coupon').val() !== 'PROMOGH2019');
    $('#showThis').toggle($('#coupon').val() == 'JDCM' || $('#coupon').val() == 'PROMOGH2019');
    $('#showThis2').toggle($('#coupon').val() == 'JDCM' || $('#coupon').val() == 'PROMOGH2019');
    $('#showThis3').toggle($('#coupon').val() == 'JDCM' || $('#coupon').val() == 'PROMOGH2019');
  }

$(document).ready(function() {
  // Bind the keyup event on both the inputs, call the function on event
  $('#coupon').on('keyup', toggleTable).trigger('keyup');
  $('#begin').on('scroll', toggleTable).trigger('scroll');
});


window.onload = function() {

  function querySt(ji) {

    hu = window.location.search.substring(1);
    gy = hu.split("&");

    for (i = 0; i < gy.length; i++) {
      ft = gy[i].split("=");
      if (ft[0] == ji) {
        return ft[1];
      }
    }
  }
  var coupon = querySt("coupon");


  if (coupon == null) {} else {
    document.getElementById('coupon').value = coupon;
  }
}

document.getElementById('coupon').focus();

document.getElementById('begin').focus(); <
/script>
<form>
  <span>Vous avez un code PROMO?</span><input type="text" name="coupon" id="coupon" placeholder="Ex: PROMO2019">
</form>

<div id="showThis">
  <div>
    <b style="color:#000000;">Prix HT:<strike>594€</strike></b>
  </div>
</div>
<div id="hideThis">
  <div>
    <b>Prix HT:594€</b>
  </div>
</div>
<div id="showThis2">
  <div>
    <b>Remise  exceptionnelle de -50%</b>
    <br><br>
    <b style="color:#36C503;">Prix final à payer: 297€</b>
  </div>
</div>
</div>
<div id="hideThis3">
  <div class="div_button">
    <a href="URL_594_euros" class="myButton"><span>&nbsp;</span>&nbsp;Acheter Maintenant 594€</a>
  </div>
</div>
<div id="showThis3">
  <div class="div_button">
    <a href="URL_297_euros" class="myButton"><span>&nbsp;</span>&nbsp;Acheter Maintenant 297€</a>
  </div>
  <div>

在代码中,您可以看到我尝试在滚动事件上显示/隐藏,但它不起作用。

我想知道如何通过代码在我的文本字段优惠券上创建此事件“keyup”。

最佳答案

在填写优惠券的代码之后,只需手动触发 keyup 事件:

$('#coupon').keyup();

关于javascript - Javascript 可以通过编程方式模拟 "keyup"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55576226/

相关文章:

javascript - 宽度为 1920 后无法响应图像

javascript - 是否可以映射路由/用户/:id and/users/me into single controller in Plumier

javascript - jQuery - 如果这个或这个输入名称失败

javascript - 如何在数组上使用 .each()

javascript - 删除功能不起作用,请帮忙

javascript - 缩放 div 以适合窗口但保持纵横比

javascript - 创建基于另一个 JSON 作为键和值的 JSON?

jquery - 具有最大高度父项的自动列 div

javascript - TypeScript 和库,例如 jQuery(带有 .d.ts 文件)

Javascript 根据自身大小按比例调整背景颜色