Rails 3 使用 Ajax 计算行总数

2024-01-10

我有一个发票应用程序。发票有行项目。提交发票后,即可正确计算行总计和总计。

但我还想在提交发票之前计算行总计和总计。例如,如果您更改数量,则行总计和总计应更改。

我目前正在研究不同的 jQuery 插件。也许你过去也做过类似的事情。你会推荐什么?


你不需要插件。仅仅 jQuery 就足够了。您需要做的是在 application.js 文件中添加一个处理程序.change() or .blur()。我推荐后者。然后利用 HTML5 的“data-”属性将价格存储为普通的 Float,以便 jQuery 可以抓取它并对其进行一些数学运算。

发票.html.erb

<div class="item">
    <h3>Item #1</h3>
    Price: <div class="price" data-price="10.20">$10.20 USD</div>
    Qty: <input type="text" size="2" id="product_1_quantity" class="quantity" value="1"> 
</div><br /><br />

<div class="item">
    <h3>Item #2</h3>
    Price: <div class="price" data-price="3.50">$3.50 USD</div>
    Qty: <input type="text" size="2" id="product_2_quantity" class="quantity" value="1">
</div><br /><br />

Total Price: <span id="total-price">input quantities</span>

应用程序.js

function getTotal(quantities) {
    var total = 0;
    $.each(quantities, function() {
        total += parseFloat($(this).closest('.item').find('.price').attr('data-price')) * parseInt($(this).val());
    });
    $("#total-price").html("$" + total + " USD");
}

$(document).ready(function() {      
    var quantity = $('.quantity');
    getTotal(quantity); // So the total is calculated on page load.

    quantity.blur(function() {
        getTotal(quantity);
    });
});

这并不完美(例如,您需要为导致 $50.9999999 的乘法添加一些处理,以及以零结尾),但想法是存在的。

在这里测试:http://jsfiddle.net/J3YKh/1/ http://jsfiddle.net/J3YKh/1/

edit另请注意,使用此代码时,如果其中一个数量为空,则该代码将不起作用。这是一个简单的修复:

quantity.blur(function() {
    var qty = $(this).val;
    if(!qty) qty = '0';
    getTotal(quantity);
}

如果没有值就填“0”,然后照常进行。未经测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 3 使用 Ajax 计算行总数 的相关文章

  • Rails Active Storage - 保留现有文件/上传吗?

    我有一个 Rails 模型 has many attached files 默认情况下 通过 Active Storage 上传时 如果您上传新文件 它会删除所有现有上传内容并将其替换为新文件 我有一个控制器破解 由于多种原因 它不太理想
  • 为什么包含此模块不会覆盖动态生成的方法?

    我试图通过包含一个模块来覆盖动态生成的方法 在下面的示例中 Ripple 关联添加了rows 方法表 我想调用该方法 但之后还要做一些额外的事情 我创建了一个模块来重写该方法 认为该模块的row 可以打电话super使用现有的方法 clas
  • 启动同一作业的多个延迟作业进程

    我在运行多个工作人员的设置中使用延迟作业 就我的问题而言 这并不重要 但假设我运行 10 个工作线程 当前在开发模式下执行此操作 我遇到的问题是两个不同的工作人员有时开始处理同一项工作 调用我的工作对象上的执行方法 据我所知 延迟作业正在使
  • ruby中如何将binary32转换为float

    我有一个以 IEEE 32 编码的 binary32 如何将 0x0040EDC2 转换为 118 625 我尝试了几种打包和解包选项 但没有成功 IEEE http en wikipedia org wiki Single precisi
  • 如果使用 jQuery 添加字段,Rails 嵌套表单属性不会保存

    我有一个带有嵌套表单的 Rails 表单 我使用 Ryan Bates 嵌套表单和 jquery 教程 并且就动态添加新字段而言 它工作得很好 但是当我提交表单时 它不会保存任何关联的属性 但是 如果在表单加载时构建部分 则它会很好地创建属
  • Devise:允许用户注册为“UsErNaMe”但使用“用户名”登录

    与大多数网站的工作方式相同 我将 UsErNaMe 存储在数据库中 但让用户使用 用户名 登录 这是一个相当明显且必要的功能 很多人似乎都问过它 但我不断遇到的解决方案似乎与 Devise 自己的文档脱节 例如 考虑这篇博文 http an
  • Rails3/will_paginate/Ajax - 下一个/上一个链接无法正常工作(这是一个错误吗?)

    我正在遵循 使用ajax分页 http railscasts com episodes 174 pagination with ajax railscast 用于我的 Rails 3 应用程序 一切似乎都运行良好 除了上一个和下一个链接根本
  • 自动加载常量时检测到循环依赖

    我将 Rails 从版本 3 1 2 运行良好 升级到 4 0 并遇到以下错误 circular dependency detected while autoloading constant Foo 我创建了一个类ProductFactor
  • 将一幅图像合成到另一幅图像上时,RMagick 透明度不起作用

    在下面的代码中 我尝试在一些山脉的图像上覆盖一个透明的正方形 我认为它会起作用 但是通过设置background color none 它不会使图像透明 结果是左上角有一个黑色方块 所需的结果是黑色方块应该是透明的 require open
  • 我应该如何使用 alias_method_chain 作为构建方法?

    我正在使用 Ruby on Rails 3 2 13 我想正确使用alias method chain build option name声明 因为我收到一个奇怪的错误 那是 在我的控制器文件中我有 class Articles Comme
  • rake db:migrate db:reset 和 db:schema:load 之间的区别

    和 之间的不同rake db migrate and rake db reset我很清楚 我不明白的是如何rake db schema load与前两者不同 只是为了确保我在同一页面上 rake db migrate 运行尚未运行的迁移 r
  • 如何将 devise/omniauth 重定向到我登录的页面?

    我通过omniauth 进行了身份验证 并且该链接通过layout application html haml 在每个页面上都可用 然而 当他们完成omniauth身份验证后 他们都会进入root权限 我如何设置它 以便他们重定向到他们单击
  • <%=h ... %> 在 Rails 中意味着什么?

    I found here http api rubyonrails org classes ActionView Helpers RecordTagHelper html以下语法 什么是h means 它用于转义标签的输出以避免跨站点脚本
  • 从数组中删除空白元素

    当我从 ruby on Rails 表单中保存多个选择时 它似乎在前面添加了一个空白元素 我该如何删除它 该字段为 selected player utf8 gt authenticity token gt H8W7qPBezubyeU0a
  • Rails content_for 和yield 之间有什么区别?

    例如 content for stuff vs yield stuff 我知道它们的实现略有不同 但是有任何真正的功能差异吗 是否有普遍接受的最佳实践 yield是您指定内容区域在布局中的位置的方式 你可能有这样的事情 div h1 Thi
  • Gem 在 irb 中可用,但在 Rails 控制台中不可用

    我正在尝试在我的 Rails 项目中使用 RedCloth gem 当我使用irb我可以加载宝石 require rubygems require RedCloth 它工作正常 但是当我在 Rails 控制台中尝试相同的操作时 我收到一条错
  • 使用 Mountain Lion、Xcode 4.5 和 RVM 安装 Ruby?

    rvm install 1 9 3 with gcc clang 根据建议无法使用 RVM 在 Lion 下安装 Ruby GCC 问题 https stackoverflow com questions 8032824 cant inst
  • 子域中的 Rails url 助手 - 删除子域

    我网站上的用户可以拥有子域 例如 他们的页面网址是 name example com 登录的用户可以查看更多用户信息 因此在用户的显示页面上 我有一个使用以下代码生成的链接 user url user subdomain gt false
  • 查找 Rails 应用程序中未使用的代码

    如何查找正在运行和未运行的代码生产中 该应用程序经过充分测试 但还有很多测试unused代码 因此 他们在运行测试时得到覆盖 我想重构并清理这个烂摊子 它一直在浪费我的时间 我有很多后台工作 这就是为什么我希望生产环境来指导我 在 Hero
  • 如何让 Sidekiq 在 Heroku 上运行?

    这是我第一次尝试让 Redis 在 Heroku 上运行 我添加了一个工作dyno 就在今天 所以还没有付款 添加了RedisToGo Nano附加组件 在我的本地机器上测试了后台作业 并将应用程序推送到heroku heroku ps g

随机推荐

  • 限制模板实例化中的参数类型

    如果我的库的用户尝试使用不合适的类型实例化模板 我将尝试触发编译时错误 我已经实施了 template
  • Pusher 未定义! Laravel 5.4 与 Laravel Echo

    我不知道我的代码有什么问题 这是我的app js First we will load all of this project s JavaScript dependencies which include Vue and Vue Reso
  • 如何在 postgres 中创建具有默认值的枚举

    我想在 postgres 中创建具有默认值的类型枚举 是的 我已经看到之前对此枚举提出的问题已经检查过 或者请任何人都可以建议我如何完成以下表结构 基本上我需要这样 create type status as enum pending ap
  • Guid 是原始类型还是复杂类型? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我们根据要扩展的原始类型和复杂类型来
  • insert exec 语句不能嵌套

    你好 我有一个名为Test ProcA我想打电话Test ProcB 我创建了一个名为的临时表 temp具有匹配的名称和数据类型返回Test ProcB 如何插入返回的结果集Test ProcB into temp 当我尝试这样做时 我不断
  • SQL 搜索列,其中列中的一项是另一项更新的子字符串

    这个问题是我原来的问题的结果 我认为这并不完全是我想要的 SQL 搜索列 其中列中的一项是另一项的子字符串 https stackoverflow com questions 25628400 sql search column where
  • 写入进程内存 ERROR_PARTIAL_COPY 299

    我正在尝试写入另一个进程的内存 我使用权限 38h VM OPERATION VM READ VM WRITE 打开它 然后我使用 VirtualProtectEx 并使用权限 4h PAGE READWRITE 但我也尝试了 PAGE E
  • Java 8 - 从 Collection.stream.map() 调用多参数方法

    我使用 java 8 Streams 一段时间了 我遇到了一种情况 我需要流式传输列表并将每个元素与另一个参数一起传递给静态方法 在java 8中可以吗 String designation Engineer List
  • 反连接和反半连接有什么区别?

    From http www dbspecialists com files presentations semijoins html http www dbspecialists com files presentations semijo
  • Pandas 日期范围返回 yyyy-ww 的“无法将字符串转换为时间戳”

    我有一个包含两列的数据框 Sales and Date dataset head 10 Date Sales 0 2015 01 02 34988 0 1 2015 01 03 32809 0 2 2015 01 05 9802 0 3 2
  • UIApplication.statusBarStyle 在 vi​​ewWillAppear 和 viewDidAppear 之间变化

    在 iOS7 中运行最初为以前版本设计的应用程序时 深灰色的导航栏会将文本为黑色的状态栏着色 我正在尝试使其适应最新版本 并将 UIApplication statusBarStyle 设置为 UIStatusBarStyleLightCo
  • 如何实现停止/取消按钮?

    我有一个方法 processData 它需要大量数据并对其进行一些处理 有一个启动按钮可以启动处理 我需要一个取消按钮来停止处理 无论它在哪里 我怎样才能实现这样的事情 我不明白的是如何在处理开始后使取消按钮可用 因为当函数运行时 UI 的
  • Mac OS X + Python + Django + MySQL

    我花了几天的时间试图让 MySQL 与 Mac OS X Python 我已经尝试过 2 7 和 3 3 和 Django 1 6 一起工作 这个主题在 SO 和其他地方的许多网页上都有讨论 并且持续了很多年 一个解决方案专门使用 MySQ
  • 如何修复 vim 以正确缩进包含 Python 注释行的折叠?

    我将 vim 的折叠方法设置为缩进 这在编写 Python 时效果很好 除非我有注释行 例如 如果我有这段代码 def myFunction here is my comment myString hello myInt 2 如果我将光标放
  • 为什么从iis调用XMLRPC时fiddler没有捕获请求?

    我有一个用 NET 编写的 Web 应用程序 它利用 CookComputing XmlRpcV2 进行 xmlrpc 通信 当我在 Visual Studio 2008 中调用单元测试时 fiddler2 成功捕获实际的 xmlrpc 请
  • 从 SFX 运行时批处理文件的行为有所不同

    因此 我编写了一个批处理文件来将客户端转换为云服务 并且我从中看到了一些奇怪的行为 因此 这基本上会查找特定的文件夹 无论它是否存在 它都会使用 GOTO 继续前进 当我使用 WinRAR 将其压缩为 SFX 并指示它运行批处理文件时 它永
  • 从应用程序范围的用户 ID 获取 Facebook 用户 ID

    从 Facebook Graph API v1 0 升级到 v2 0 后 Facebook 使用 应用程序范围的用户 ID 因此我无法再在应用程序中看到 原始 用户 ID 我总是使用实时更新和图形 API 调用 例如 https graph
  • 无论我尝试什么,CFBundleDisplayName 的本地化都不起作用

    有人可以告诉我如何找到问题吗 我有一个名为 MyApp 的应用程序 我想将应用程序名称本地化为德语 我在主项目目录中有一个目录 de lproj 它包含一个文件 Localized strings 并且工作正常 我添加了一个 InfoPli
  • 如何在图像上方添加渐变边框(对角线边框)[重复]

    这个问题在这里已经有答案了 我需要这样的东西 但在图像上方 这是我的第一次尝试 但它不起作用 http jsfiddle net wo8gbhx3 17 http jsfiddle net wo8gbhx3 17 这是我的标记 现在 HTM
  • Rails 3 使用 Ajax 计算行总数

    我有一个发票应用程序 发票有行项目 提交发票后 即可正确计算行总计和总计 但我还想在提交发票之前计算行总计和总计 例如 如果您更改数量 则行总计和总计应更改 我目前正在研究不同的 jQuery 插件 也许你过去也做过类似的事情 你会推荐什么