You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为多个表单输入绑定keyup函数实现数值相乘计算

问题根因
  • 误用ID选择器匹配多元素:HTML规范要求ID全局唯一,使用$("#quantity")、$("#final_price")选择元素时,浏览器只会返回页面中第一个匹配ID的元素,因此事件绑定、结果赋值都仅对第一个表单生效。
  • 冗余遍历逻辑:原有代码中的each遍历没有实际作用,jQuery选择器匹配多元素时可直接批量绑定事件,不需要额外遍历。
  • 结果输出目标不匹配:原有代码固定将计算结果写入全局唯一的#final_price元素,无法对应到当前输入框所属表单的结果展示位。
修复逻辑说明
  • 将数量输入框的唯一ID替换为通用类名ilosc,通过类选择器批量绑定keyup事件,所有表单的数量输入框都可触发计算逻辑。
  • 调用$(this).closest("form")定位当前输入框所属的父表单,再查找当前表单内的结果输入框.final-price-rental-value,确保计算结果输出到对应表单的目标位置。
  • 新增toFixed(2)处理计算结果,自动保留两位小数,符合价格类数值的展示规范。
    注:原修复代码中最后一行的var final_price_input_value变量定义无实际作用,下述最终代码已做移除,不影响功能运行
最终可运行代码
$(".ilosc").on('keyup', function (e) {
    var quantity = parseFloat($(this).val());
    var product_price = parseFloat($("input[name='product_price']").val(), 2);
    var final_price_input= $(this).closest("form").find(".final-price-rental-value");
    var final_price_value = (quantity * product_price).toFixed(2);
    final_price_input.val(final_price_value);
});

内容的提问来源于stack exchange,提问作者NCTI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:54:04