Javascript可以通过编程方式模拟“键盘”吗?

时间:2019-04-08 14:55:08

标签: 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”。

1 个答案:

答案 0 :(得分:2)

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

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