如何在javascript上添加基本输入折扣

如何在javascript上添加基本输入折扣,javascript,Javascript,这是我想要创建的代码。你是否输入了所有信息,如价格、数量和折扣百分比,并将折扣金额显示为小计和总额 折扣金额为折扣百分比除以100,然后乘以小计。小计是用价格乘以数量得出的。总数是通过小计乘以折扣来计算的,你可以看到,我已经完成了表单,并且我有了javascript上几乎所有的代码,但似乎我不能让它与折扣一起工作。请帮忙 JS: HTML: 普里西奥* 康蒂达* %下软膏 下软膏 小计 总数* 您错过了文本框ID中的“#”表单,应该是 $("#CAT_Custom_491074")

这是我想要创建的代码。你是否输入了所有信息,如价格、数量和折扣百分比,并将折扣金额显示为小计和总额 折扣金额为折扣百分比除以100,然后乘以小计。小计是用价格乘以数量得出的。总数是通过小计乘以折扣来计算的,你可以看到,我已经完成了表单,并且我有了javascript上几乎所有的代码,但似乎我不能让它与折扣一起工作。请帮忙

JS:

HTML:


普里西奥*

康蒂达*
%下软膏
下软膏
小计
总数*
您错过了文本框ID中的“#”表单,应该是

$("#CAT_Custom_491074").val(division);

这将解决您的问题。

您的数学不正确

如果我在折扣框中输入50,x=50,y=100

  • division=x/y
    =
    50/100
    =
    0.5
  • 说小计=100美元,然后说多个小计*division=
    $100*0.5
    =
    $50
  • 然后,
    total=小计*multi
    =
    $100*$50
    =
    $5000
  • 您不应该将小计*倍数相乘

    你为什么不这样做呢:

    total = subtotal * (1 - discount/100)
    
    本质上(1-折扣/100)是你的乘数。如果我输入12作为折扣,它将变为:

    总计=($100)*(1-12/100)
    ,或
    ($100)*0.88
    ,或
    $88

    只需将最后一行代码更改为:

    total = subtotal - multi
    
    multi不是一个乘数,而是你想要从总数中扣除的金额。

    我看到了一些问题:

  • 数学不正确(感谢-请对该答案进行投票,因为它很有帮助)
  • 选择器输入错误-缺少
    #
    (感谢-请向上投票该答案,因为它很有用)
  • 更正了上面的输入错误后,您现在将覆盖折扣百分比。我打赌您的意思是用于折扣值字段:
    #CAT_Custom_491218
    。如果您使用有意义的ID而不是自动生成的ID,那么提前检测就会容易得多
  • 仅当“数量”字段更改时,才计算此函数。例如,如果更改折扣百分比,则不会重新计算小计和总计
  • 您只观看键盘事件。如果仅使用鼠标更改值(复制/粘贴或拖放),则不会重新计算小计和总计。同时处理
    oninput
    (html5的新事件)和
    onchange
  • 要绑定到所有输入并检测更多事件,而不仅仅是
    键控

    $("input").on("input keyup change", function () {
        ...
    

    当你说“不能成功”时,你是什么意思?当你键入价格和数量时,小计会显示,但当你键入%折扣时,折扣金额不会显示,也不会显示总数。我已经纠正了那个小错误,它没有解决问题。当您键入价格和数量时,小计显示,但当您键入%折扣时,折扣金额不会显示,也不会显示总数!!非常感谢你!我有一个星期的时间想弄明白这件事,这让我很伤心。你刚刚救了我的命再次谢谢你
    total = subtotal - multi
    
    $("input").on("input keyup change", function () {
        ...