对表的行和列求和

2024-04-14

我有一个表格,当且仅当每行的总和必须等于 100 时才允许提交表格 每列的总和必须

This is the old scenario each row and each column must be = 100. enter image description here

演示代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
disableSave();

$(".sum").on("input", function() {
  sumThisClass("1");
  sumThisClass("2");
  sumThisClass("3");
  sumThisClass("4");
  sumThisClass("5");
  sumThisClass("6");
  sumThisClass("7");
  validateForm();
});

function validateForm() {
  var hasError = $(".error").length > 0;
  if (hasError) {
    disableSave();
    return;
  }
  
  var expectedTotal = $(".total").length * 100;
  console.log(expectedTotal, getCurrentTotal());
  if (expectedTotal == getCurrentTotal()) {
    enableSave();
  }
  else {
    disableSave();
  }
}

function getCurrentTotal() {
    var sumTotal = 0;
    $(".total").each(function (index, el) {
    var elValue = parseInt($(el).text());
    if (!isNaN(elValue)) {
      sumTotal += parseInt($(el).text());
    }
  });
  return sumTotal;
}

function disableSave() {
  $("#btn-save").prop("disabled", true);
}

function enableSave() {
  $("#btn-save").prop("disabled", false);
}

function sumThisClass(className) {

  var sumTotal = 0;
  $("." + className).each(function(index, el) {
    var elValue = parseInt($(el).val());
    if (!isNaN(elValue)) {
      sumTotal += parseInt($(el).val());
    }
  });
  
  $(".sum-" + className).text(sumTotal);

  if (sumTotal > 100) {
    $(".sum-" + className).append("<div class='error'>cannot be greater than 100</div>");
  }

}
});
</script>
<form action="test.php" method="post">
<table>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td>Total</td>
  </tr>
  <tr>
    <td></td>
    <td>
      <input type="number" class="sum 1 5" min="0" max="100">
    </td>
    <td>
      <input type="number" class="sum 1 6" min="0" max="100">
    </td>
    <td>
      <input type="number" class="sum 1 7" min="0" max="100">
    </td>
    <td class="total sum-1"></td>
  </tr>
  <tr>
    <td></td>
    <td>
      <input type="number" class="sum 2 5" min="0" max="100">
    </td>
    <td>
      <input type="number" class="sum 2 6" min="0" max="100">
    </td>
    <td>
      <input type="number" class="sum 2 7" min="0" max="100">
    </td>
    <td class="total sum-2"></td>
  </tr>
  <tr>
    <td>TOTAL</td>
    <td class="total sum-5"></td>
    <td class="total sum-6"></td>
    <td class="total sum-7"></td>
  </tr>
</table>

<input type="submit" name="save" value="SAVE" id="btn-save"/>

演示链接 https://jsfiddle.net/1c4jhyL0/

我试图改变它,但没有成功。


var isvalid=true;
$( document ).ready(function() {
    $("#test").prop("disabled",true);
    $(".tabbody input[type=number]").blur(function(){
        validateSubmit();
    });
});
function validateSubmit()
{
    var retval = sumRowVals();
    $("#test").prop("disabled",!retval);
    $("#msgdiv").html(retval ? "":"Invalid inputs!!!");
}
function sumRowVals()
{
    isvalid=true;
    resetFigs();
    var rindx=1;
    $(".tabbody tr").each(function(){
        var temp=0;
        var cindx=1;
        $("input[type=number]",this).each(function(){
            var elval = !isNaN($(this).val()) ? parseInt($(this).val()):0;
            var sumcol = $("#ccol"+cindx);
            $(sumcol).html(parseInt($(sumcol).html())+elval);
            temp=temp+elval;
            cindx++;
            if(elval > 100){isvalid=false;}
            if(parseInt($(sumcol).html()) > 100){isvalid=false;}
        });
        if(rindx != $('.tabbody tr').length)
        {
            if(temp != 100){isvalid=false;}
            $("#rcol"+rindx).html(temp);
        }
        rindx++;
    });
    return isvalid;
}
function resetFigs()
{
    $('*[id*=ccol]').each(function() {
    $(this).html("0");
});
}
function SubmitForm()
{
    // your form submit code
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="js/jquery2.0.2.min.js"></script>
</head>

<body>
<table border=1 cellpadding="5">
<tbody class='tabbody'>
    <tr>
        <td><input type="number" id="col1" min="0" max="100"></td>
        <td><input type="number" id="col2" min="0" max="100"></td>
        <td><input type="number" id="col3" min="0" max="100"></td>
        <td id="rcol1"></td>
    </tr>
    <tr>
        <td><input type="number" id="col1" min="0" max="100"></td>
        <td><input type="number" id="col2" min="0" max="100"></td>
        <td><input type="number" id="col3" min="0" max="100"></td>
        <td id="rcol2"></td>
    </tr>
    <tr>
      <td id="ccol1"></td>
      <td id="ccol2"></td>
      <td id="ccol3"></td>
        <td>
          <input type="button" name="test" id="test" value="Save" onclick="SubmitForm()" />
</td>
    </tr> 

</tbody>
</table>
<div id="msgdiv" style="color:red;line-height:30px"></div>
</body>
</html>

这是一个粗略的想法:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="js/jquery2.0.2.min.js"></script>
<script>
var isvalid=true;
$( document ).ready(function() {
    $("#test").prop("disabled",true);
    $(".tabbody input[type=number]").blur(function(){
        validateSubmit();
    });
});
function validateSubmit()
{
    var retval = sumRowVals();
    $("#test").prop("disabled",!retval);
    $("#msgdiv").html(retval ? "":"Invalid inputs!!!");
}
function sumRowVals()
{
    isvalid=true;
    resetFigs();
    var rindx=1;
    $(".tabbody tr").each(function(){
        var temp=0;
        var cindx=1;
        $("input[type=number]",this).each(function(){
            var elval = !isNaN($(this).val()) ? parseInt($(this).val()):0;
            var sumcol = $("#ccol"+cindx);
            $(sumcol).html(parseInt($(sumcol).html())+elval);
            temp=temp+elval;
            cindx++;
            if(elval > 100){isvalid=false;}
            if(parseInt($(sumcol).html()) > 100){isvalid=false;}
        });
        if(rindx != $('.tabbody tr').length)
        {
            if(temp != 100){isvalid=false;}
            $("#rcol"+rindx).html(temp);
        }
        rindx++;
    });
    return isvalid;
}
function resetFigs()
{
    $('*[id*=ccol]').each(function() {
    $(this).html("0");
});
}
function SubmitForm()
{
    // your form submit code
}
</script>
</head>

<body>
<table border=1 cellpadding="5">
<tbody class='tabbody'>
    <tr>
        <td><input type="number" id="col1" min="0" max="100"></td>
        <td><input type="number" id="col2" min="0" max="100"></td>
        <td><input type="number" id="col3" min="0" max="100"></td>
        <td id="rcol1"></td>
    </tr>
    <tr>
        <td><input type="number" id="col1" min="0" max="100"></td>
        <td><input type="number" id="col2" min="0" max="100"></td>
        <td><input type="number" id="col3" min="0" max="100"></td>
        <td id="rcol2"></td>
    </tr>
    <tr>
      <td id="ccol1"></td>
      <td id="ccol2"></td>
      <td id="ccol3"></td>
        <td>
          <input type="button" name="test" id="test" value="Save" onclick="SubmitForm()" />
</td>
    </tr> 

</tbody>
</table>
<div id="msgdiv" style="color:red;line-height:30px"></div>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对表的行和列求和 的相关文章

  • 如何将正文中的数字替换为波斯数字?

    我想将 html 内容中的每个数字转换为波斯数字 而不会对页面元素产生其他影响 例如 div style color c2c2c2 text number 1 span text number 2 span div text number
  • 如何过滤javascript对象数组

    我有两个数组 我正在使用 PubSidebar 过滤基于 groupKey 的内容 let groupKey oaDeal Journals Deposit This array of object will be filtering wi
  • 在 javascript/jquery 中获取图像的完整尺寸

    我在页面上有一个图像 该图像已调整大小以适合 div 例如 400x300 如何在 jQuery 中获取图像的完整尺寸 4000x3000 width 和 height 似乎只返回图像的当前大小 图像有naturalWidth and na
  • 使用Web蓝牙API时找不到移动设备

    我正在学习 Web 蓝牙 API 使用 google 开发控制台 我无法找到我的移动设备 还尝试了 github 上提供的演示 https github com WebBluetoothCG demos https github com W
  • 类型错误:无法读取未定义的属性“存在”

    我正在尝试为 jsx 文件编写一个测试用例 在此我能够传递 proptypes 但不是我正确传递 proptypes 的地方 当我运行测试用例时出现错误 下面提供我的错误 测试用例和代码 类型错误 无法读取未定义的属性 存在 不知道如何让它
  • 如何让 Rails 资产管道生成源地图?

    我想让 Rails 与编译后的 CoffeeScript 缩小的 JS 一起生成源映射 以便更好地记录错误 不过 网上似乎还没有关于如何执行此操作的全面文档 有人这样做过吗 我使用 Rails 3 2 和 Heroku Rails 支持缩小
  • 创建地图后向 Google 地图 v3 添加标记

    我对使用 Google Maps API 比较陌生 现在我正在开发一个项目 用户可以选择各种搜索过滤器并查看结果自动显示在地图上 而无需重新加载页面 到目前为止 我的方法是创建一个控制地图的 Javascript 对象 以便我可以按照我的意
  • 散景服务器获取鼠标位置

    我正在开发一个带有散景 0 12 2 的交互式应用程序 它根据特定的交互更新绘图 现在 我使用滑块来更改图中字形的位置 但实际上我想访问鼠标在特定图中的位置 数据集是一个多维矩阵 张量 密集数据 每个图在特定位置显示一个维度 如果我更改一个
  • svg 圆不是用 javascript 绘制的

    我一直在尝试使用 HTML 中的 javascript 来进行 svg 操作的 hello world 我编写了下面的代码 虽然它生成了正确的 html 但我在浏览器中没有看到任何输出 也没有看到任何错误
  • 解决多个 jQuery 文件之间的冲突

    我的项目中有多个 jquery 文件 我正在使用jquery1 4 2使用facebox 但我也需要原型和scriptacolous脚本 我用过 jQuery noconflict 在我的代码中 但它不起作用 这是网址http mlep c
  • 检查 IE8 是否使用纯 Javascript [重复]

    这个问题在这里已经有答案了 我以前是这样检查的 browser msie browser version 8 但似乎 browser已从 jQuery 的更高版本中删除 So 我怎样才能用纯javascript检查这一点 I tried i
  • 在 d3v4 堆积条形图中使用 JSON

    我找到了一个d3v3堆积条形图示例 http bl ocks org mstanaland 6100713我想使用它 因为它使用 json 数据 还有一个d3v4规范条形图示例 https bl ocks org mbostock 3886
  • 对大数据块进行反应非阻塞渲染

    最近我开始学习反应并想知道是否有某种模式可以用于大数据的非阻塞 UI 线程渲染 比方说 我们采取这个例子 https www mendix com tech blog making react reactive pursuit high p
  • 使用 TypeScript / Angular2 循环对象的键/值[重复]

    这个问题在这里已经有答案了 如何使用 TypeScript 迭代对象并能够访问键和值 我的 json 对象看起来像这样 clients 123abc Forename Simon Surname Sample 456def Forename
  • Firebase Storage put() 方法上传数字数组而不是字符串

    我想将字符串上传到 Firebase 存储文件 我尝试过 let myString storage ref path child file txt putString myString raw and with let myString s
  • 过早退出 Qualtrics 中的循环和合并块

    我目前正在进行一项 Qualtrics 调查 受访者必须解决一长串字谜问题 然后回答一些人口统计问题 为了使变位词部分更容易 我使用了循环和合并块 第一个字段是要解决的变位词 第二个字段是变位词的解决方案 因此调查可以根据受访者的答案来检查
  • 如何在 vue.js 中使用 SVG.js 插件?

    我在用svg js在我的 Laravel 项目中运行vue js 这就是我使用的方式svg js Step 1 安装svg js作为我的 vue 应用程序中的插件 import svgJs from svg js dist svg expo
  • 让 hashchange 事件在所有浏览器(包括 IE7)中工作

    我有一些代码 由另一位开发人员编写 在 WordPress 内部进行 AJAX 页面加载 例如 没有页面重新加载 当您单击导航项时 AJAX 会刷新主要内容区域 我的问题是它在 IE7 中被破坏了 我不知道从哪里开始调试 最初的开场白是 v
  • 如何在 JavaScript 中将样式属性重置为其 CSS 默认值?

    在 php 生成的页面上有几个这样的元素 td class defaultTDStyle style color userDefinedCustomColor td 因此有一个默认样式 我应用了几个额外的样式来覆盖 CSS 中定义的样式 有
  • 使用node.js/Express从HTTP重定向到HTTPS

    有什么方法可以更改我的 Web 应用程序以侦听 HTTPS 而不是 HTTP 我正在使用node js express 我需要它来侦听 HTTPS 因为我正在使用地理定位 而 Chrome 不再支持地理定位 除非从 HTTPS 等安全上下文

随机推荐

  • python 路径 django

    我怎样才能添加一些东西到我的 Pythonpath 文件到底位于哪里 我必须更改以添加到我的 pythonpath 中 我到底要添加什么到我的 Pythonpath 中 如果Python调用 Library Frameworks Pytho
  • 从 python 3.2 中的文件的“Content-Length”值获取文件大小

    我想要得到Content Length来自元变量的值 我需要获取要下载的文件的大小 但最后一行返回错误 HTTPMessage对象没有属性getheaders import urllib request import http client
  • 如何将令牌存储在Android的本地或会话存储中?

    我正在创建一个与 SOAP Web 服务交互以从数据库获取数据的应用程序 当用户成功登录时 它会通过网络服务生成一个令牌 稍后在其他活动中调用 Web 服务方法时将需要此令牌 我的问题是 如何在需要时将该令牌传递给下一个活动并维护它直到用户
  • 如何将 HTML 和 CSS 添加到 PDF 中 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 HTML 不是 XHTML 文档 可以在 Firefox 3 和 IE 7 中很好地呈现 它使
  • x, = ... - 这个尾随逗号是逗号运算符吗?

    我不明白变量后面的逗号是什么lines means http matplotlib org examples animation simple anim html http matplotlib org examples animation
  • 使用 jQuery 获取所选选项 id

    我正在尝试使用 jQuery 根据所选选项发出 ajax 请求 有没有一种简单的方法来检索所选的选项 ID 例如 id2 使用 jQuery
  • 删除图像c#的圆形透明部分

    我正在位图上创建一个圆圈 但想在其中有一个洞 经过半个小时的搜索 我只找到了将图像裁剪为圆形的方法 困难的是 中间的孔应该像图像的其余部分一样透明 This https i stack imgur com Avdrv png是基础图像并且黄
  • JavaFX SimpleObjectProperty 与 SimpleTProperty

    使用有什么区别 简单字符串属性 vs SimpleObjectProperty or 简单整数属性 vs SimpleObjectProperty 除了返回包装器而不是原始类型之外 无论如何它都可以自动转换 API 为特定类型添加了附加功能
  • 如何设置 scons 系统包含路径

    使用 scons 我可以轻松设置我的包含路径 env Append CPPPATH foo 这传递了标志 Ifoo to gcc 不过 我正在尝试在启用大量警告的情况下进行编译 特别是与 env Append CPPFLAGS Werror
  • 谷歌地图 v3 重复标记 - 使用数组来管理标记但仍然得到重复项

    我不明白 我有一个数组来管理我添加到地图中的标记 当我更新集合时 即使我的标记数组中仍然只有正确数量的标记 标记也会重复 我确信这对我来说是一个非常简单和愚蠢的错误 但我没有看到它 m viewMarkers function data a
  • getUidTxBytes(int uid) 在 android 6.0 中始终返回 0

    我正在尝试获取所有应用程序的网络流量统计信息 我只是打印设备中每个应用程序的总网络流量 该代码在 android 4 4 和 5 1 设备中运行良好 但在 android 6 0 设备中它始终为所有应用程序返回 0 任何人都可以告诉我为什么
  • 从父级构建 Maven 模块,无需父级引用

    我已经为几个模块建立了一个反应器构建 效果很好 我的子模块没有引用父 pom xml 当我将子模块用于多个产品时 存在多个父 pom 因此无论如何我都无法将父引用放在子模块中 现在我希望父 pom 能够更改子模块中的一些设置 在不引用父 p
  • Ruby:无法解析在 OS X 中导出为 CSV 的 Excel 文件

    我正在使用 Ruby 的 CSV 库来解析一些 CSV 我有一个看似格式良好的 CSV 文件 是通过将 Excel 文件导出为 CSV 来创建的 However CSV open filename r 导致CSV IllegalFormat
  • 如何在PHP中显示上传文件后的结果

    我有一个将视频上传到服务器的脚本 一切正常 但在视频上传到服务器完成后出现问题 它以数组形式显示 uploads 文件夹中所有上传的文件 我只想要我刚刚上传的文件的结果 它不显示以前的文件 我需要 ffmpeg 来提高视频质量 索引 php
  • 让soapUI在附件选项卡中显示附件以进行响应

    我有一个通过 HTTP GET 返回文件的 REST 服务 我已经在响应中 在服务器上 设置了这些标头 并且下载在任何浏览器中都能完美运行 Content Length Content Type Content Disposition 然而
  • 阅读器关闭时尝试读取无效

    我正在处理 C 和 MySql 请求 我正在尝试检索数据库中的数据 但出现此错误消息 阅读器关闭时尝试读取无效 感谢你们的帮助 我有这个功能 public MySqlDataReader GetValueFromTable string t
  • HTML/CSS - 将元素宽度扩展到可见区域(超出包含元素的宽度)

    我正在生成一个网页 其中有一个带有绿色背景的 h2 标记了一个表格 该表格可以有任意数量的列 我希望 h2 元素水平延伸至用户可以滚动的范围 以便表格上方始终有一个绿色条 我想要实现的效果是一个绿色条 至少跨越表格的宽度 因此无论用户滚动多
  • foreignKey 字段不会出现在 Django 管理站点中

    模型上的外键未出现在 Django 管理站点中 这与是否在 ModelAdmin 实例中显式指定该字段无关 fields title field that does not show up 我意识到有很多变量可能导致这种行为 class A
  • Git 挑选文件,从目录 A 到目录 B

    我有一个项目 一直在进行一些实验性的改变 到目录 A 中的子项目 但是 在项目的 master 分支中 子项目已移动到一个单独的目录 即目录 B 我有大约 10 个提交 我想有效地将 其挑选到 master 中 但是我如何告诉 git 将旧
  • 对表的行和列求和

    我有一个表格 当且仅当每行的总和必须等于 100 时才允许提交表格 每列的总和必须 This is the old scenario each row and each column must be 100 演示代码