从jQuery中的数量输入框计算价格

Posted

技术标签:

【中文标题】从jQuery中的数量输入框计算价格【英文标题】:Calculate price from quantity input box in jQuery 【发布时间】:2012-09-25 12:54:37 【问题描述】:

我在 jQuery 中从 Quantity 计算价格时遇到了一个小问题。这些是我的输入框。

Quantity: <input type="text" style="width: 50px;" name="quantity" id="quantity" class="txt" value="1" />

Price: <input type="text" style="width: 50px;" name="item_price" id="item_price" class="txt" value="2990" />

Total Price: <input type="text" style="width: 50px;" name="total_price" id="total_price" class="txt" value="" />

【问题讨论】:

无。除非你解释你想要达到的目标。它应该基于用户输入吗?来自输入字段中的硬编码值?加载页面时应该发生这种情况吗?在飞行中? ... 【参考方案1】:

我假设您想要公式或如何获取输入元素的值:

var quantity = $("#quantity").val();
var iPrice = $("#item_price").val();

var total = quantity * iPrice;

$("#total_price").val(total); // sets the total price input to the quantity * price

alert(total);

为 Keyup 编辑

$('#quantity').keyup(function() 
   var quantity = $("#quantity").val();
   var iPrice = $("#item_price").val();

   var total = quantity * iPrice;

   $("#total_price").val(total); // sets the total price input to the quantity * price
);

【讨论】:

这有效,但当我改变数量时没有实时/keyup,有什么想法吗? @HafsteinnMárMásson 包含了一个用于更改数量时的 keyup 示例。希望这会有所帮助。 谢谢,但现在价格不会出现,除非我在数量字段中进行更改,有什么快速解决方法吗? @HafsteinnMárMásson 价格应该出现在页面加载时。签出:jsfiddle.net/WXyNw @HafsteinnMárMásson 如果您希望它在价格更改时实时更改,您也需要一个事件处理程序来处理这个问题,您可以复制我为您创建的 keyup 函数并将“#quantity”更改为“ #it​​em_price"【参考方案2】:

更新以在脚本标签中显示完整示例

如果您想要公式以及如何“看到”变化:

<script type="text/javascript">
    $(function()   //  In jQuery 1.6+ this is same as $(document).ready(function())
        $('#quantity, #item_price')  //  jQuery CSS selector grabs elements with the ID's "quantity" & "item_price"
            .on('change', function(e)   //  jQuery 1.6+ replcement for .live (dynamically asigns event, see jQuery API)
            //  in this case, our event is "change" which works on inputs and selects to let us know when a value is changed
                //  below i use inline if statements to assure the values i get are "Real"
                var quan = $("#quantity").val() != "" ? parseFloat($("#quantity").val()) : 1,  //  Get quantity value
                    pric = $("#item_price").val() != "" ? parseFloat($("#item_price").val()) : 0;  //  Get price value
                $('#total_price').val(pric*quan); // show total
            );
    );
</script>
jQuery API jQuery API .ready() jQuery API Selectors jQuery API .on() jQuery API .live() jQuery API .change() jQuery API .val() inline if

【讨论】:

这就是我的做法。您需要在&lt;/body&gt; 部分上方的&lt;Script type="text/javascript"&gt; 中添加以上内容。以防对OP 不明显 实际上,.on 的这种使用并不能代替 live.. 你必须使用委派版本,即 $(staticparent).on('events','elements',function()

以上是关于从jQuery中的数量输入框计算价格的主要内容,如果未能解决你的问题,请参考以下文章

jQuery实现限制input框 textarea文本框输入字符数量的方法

如何使用 Jquery 使用户从确认框中的输入框中取消焦点?

jQuery:如何突出显示输入框中的文本?

javascript/jquery 输入验证

使用 jQuery 或纯 Javascript 访问一组 HTML 输入文本框

jquery怎么判断输入框中的值是不是改变