Javascript 求和表行和列

Javascript 求和表行和列,javascript,html-table,totals,Javascript,Html Table,Totals,我有一个表,我想允许提交的形式,当且仅当每行的总数必须=100不小于或大于 并且每列的总和必须为0; if(hasrerror){ 禁用保存(); 返回; } var expectedTotal=$(“.total”)。长度*100; log(expectedTotal,getCurrentTotal()); 如果(expectedTotal==getCurrentTotal()){ 启用保存(); } 否则{ 禁用保存(); } } 函数getCurrentTotal(){ var sumTo

我有一个表,我想允许提交的形式,当且仅当每行的总数必须=100不小于或大于 并且每列的总和必须为0; if(hasrerror){ 禁用保存(); 返回; } var expectedTotal=$(“.total”)。长度*100; log(expectedTotal,getCurrentTotal()); 如果(expectedTotal==getCurrentTotal()){ 启用保存(); } 否则{ 禁用保存(); } } 函数getCurrentTotal(){ var sumTotal=0; 美元(“.total”)。每个函数(索引,el){ var-elValue=parseInt($(el.text()); 如果(!isNaN(elValue)){ sumTotal+=parseInt($(el).text()); } }); 返回总和; } 函数disableSave(){ $(“#btn save”).prop(“disabled”,true); } 函数enableSave(){ $(“btn保存”).prop(“已禁用”,false); } 函数sumThisClass(类名){ var sumTotal=0; $(“+”类名)。每个(函数(索引,el){ var-elValue=parseInt($(el).val()); 如果(!isNaN(elValue)){ sumTotal+=parseInt($(el).val()); } }); $(“.sum-”+className).text(sumtottal); 如果(总和>100){ $(“.sum-”+className).append(“不能大于100”); } } }); 全部的 全部的


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

希望它对你有用

$(文档).ready(函数(){
禁用保存();
$(“.sum”)。关于(“输入”,函数(){
sumThisClass(“1”);
sumThisClass(“2”);
sumThisClass(“3”);
sumThisClass(“4”);
sumThisClass(“5”);
sumThisClass(“6”);
sumThisClass(“7”);
validateForm();
});
函数validateForm(){
var hasError=$(“.error”)。长度>0;
if(hasrerror){
禁用保存();
返回;
}

如果(tmp['sum_1'],您将通过以下方式更改旧条件:

if( tmp['sum_1'] == 100 && 
          tmp['sum_2'] == 100 && 
          tmp['sum_5'] <= 100 && 
          tmp['sum_6'] <= 100 && 
          tmp['sum_7'] <= 100) {
          enableSave();
} else {
        disableSave();
}
if(tmp['sum_1']==100&&
tmp['sum_2']==100&&
tmp['sum_5']
var isvalid=true;
$(文档).ready(函数(){
$(“#测试”).prop(“禁用”,真);
$(“.tabbody输入[type=number]”).blur(函数(){
validateSubmit();
});
});
函数validateSubmit()
{
var retval=sumRowVals();
$(“#测试”).prop(“禁用”、!retval);
$(“#msgdiv”).html(retval?”:“无效输入!!!”;
}
函数sumRowVals()
{
isvalid=true;
重置图();
var-rindx=1;
$(“.tabbody tr”).each(function(){
var-temp=0;
var cindx=1;
$(“输入[type=number]”,this)。每个(函数(){
var elval=!isNaN($(this.val())?parseInt($(this.val()):0;
var sumcol=$(“#ccol”+cindx);
$(sumcol.html)(parseInt($(sumcol.html())+elval);
temp=temp+elval;
cindx++;
如果(elval>100){isvalid=false;}
如果(parseInt($(sumcol.html())>100){isvalid=false;}
});
if(rindx!=$('.tabbody tr').length)
{
如果(temp!=100){isvalid=false;}
$(“#rcol”+rindx).html(temp);
}
rindx++;
});
返回有效;
}
函数resetFigs()
{
$('*[id*=ccol]')。每个(函数(){
$(this.html(“0”);
});
}
函数SubmitForm()
{
//您的表单提交代码
}

无标题文件

我的代码看起来很脏,但我只想让你知道我在每一行中到底做了什么

顺便说一句,你可以试试这个

$(函数(){
$('.btn create')。单击(函数(){
var col=parseInt($('.count列').val());
var row=parseInt($('.count row').val());
$('table').html(“”);
风险值头=“”;
var foot='TOTAL ROW';
var tr='';
对于(a=0;a
.error行,.error列{边框:1px实心红色;}
表tfoot tr th:not(:first child){font-weight:400;}
创建多少行x列x显示DOM
在本演示中使用,因为它的简洁语法使处理表单控件更容易。在每个总单元格中添加了
标记。所有
都有一个与其单元格相关联的id(

详细信息将在演示中进行注释

演示
/*使用老式的HTMLFormControlsCollection*/
//引用第一个(也是唯一一个)表单*/
var f0=document.forms[0];
//f0的所有表单控件的集合
var F=f0.5个元素;
/*通过调用
||回调函数tableCalc()
*/
f0.oninput
if( tmp['sum_1'] == 100 && 
          tmp['sum_2'] == 100 && 
          tmp['sum_5'] <= 100 && 
          tmp['sum_6'] <= 100 && 
          tmp['sum_7'] <= 100) {
          enableSave();
} else {
        disableSave();
}