【问题标题】:jQuery Promo code functionjQuery 促销代码功能
【发布时间】:2018-02-15 17:11:01
【问题描述】:

我正在使用以下代码根据输入的代码执行值更新。但它返回错误。

例如:如果促销代码是降价 10,当前总数为 100,则返回 80。应该是 90。

jQuery(document).ready(function() {
$('#promo-code').keyup(function() {
  if ($("input:text[name='promo-code']").val() == "intro") {
    var promoval = parseFloat($("input:text[name='total']").val());
    $("#total").val(promoval-10);  
  }
});

【问题讨论】:

标签: jquery jquery-calculation


【解决方案1】:

尝试其他的,而不是 keyup,如下所示的 focusout。因为当您使用 keyup 时,它会在每个 keyup 事件中触发。

$(document).ready(function() {
  $('#promo-code').focusout(function() {
    if ($("input:text[name='promo-code']").val() == "intro") {
      var promoval = parseFloat($("input:text[name='total']").val());
      $("#total").val(promoval-10);  
    }
  });
});

查看下面的 sn-p 以供参考。

$('#total').val(100);
$('#promo-code').focusout(function() {
  if ($(this).val() == "intro") {
    var promoval = parseFloat($('#total').val());
    $("#total").val(promoval - 10);
  } else {
    alert('invalid promo');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="promo-code">
<input type="text" id="total">

【讨论】:

  • 谢谢拉杰什。但我使用keyup 的原因是无需单击即可更新总字段。另外,即使我使用这种方法,如果我重新输入相同的代码并聚焦,总数每次都在减少。
【解决方案2】:

即兴解决您的问题:

jQuery(document).ready(function() {

    $('#promo-code').change(function() {

        if ($(this).val() == "intro") {

           var promoval = parseFloat($("input:text[name='total']").val());
           $("#total").val(promoval-10);

        }
    }
});

【讨论】:

  • 你怎么能即兴创作,你不知道问题出在哪里
【解决方案3】:

我希望您正确设置 html,并且 keyup 功能应该可以正常工作。但是您还想检查此处其他答案中提到的其他方法。我建议你使用change 方法。

jQuery(document).ready(function() {
$('#promo-code').keyup(function() {
  if ($("input:text[name='promo-code']").val() == "intro") {
    var promoval = parseFloat($("input:text[name='total']").val());
    $("#total").val(promoval-10);  
  }
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="promo-code" type="text" id="promo-code"/>
<input name="total" type="text" value="100" id="total"/>

【讨论】:

  • 谢谢,是的,HTML 是正确的。 “改变”完成了工作。但我试图实时更新价格。 :/ 还有其他建议吗?
  • 尝试实时更新价格是什么意思?从您提供的代码中,尚不清楚哪个是实时价格。请让你的问题更清楚一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-28
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
  • 1970-01-01
  • 2021-02-01
  • 1970-01-01
相关资源
最近更新 更多