Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中获得隐藏字段的数字总和?_Javascript_Jquery - Fatal编程技术网

如何在javascript中获得隐藏字段的数字总和?

如何在javascript中获得隐藏字段的数字总和?,javascript,jquery,Javascript,Jquery,我有一些类为“absclass”的动态输入隐藏字段。我有数字和数字 这些字段中的字符。 我只想得到javascript中数字的总和。我写了如下内容,即 不工作 $(document).ready(function() { $('#btn').live('click', function(e) { e.preventDefault(); var sum = 0; $('.absclass').each(fu

我有一些类为“absclass”的动态输入隐藏字段。我有数字和数字 这些字段中的字符。 我只想得到javascript中数字的总和。我写了如下内容,即
不工作

  $(document).ready(function() {
        $('#btn').live('click', function(e) {
            e.preventDefault();
            var sum = 0;
            $('.absclass').each(function() {
                sum += Number($(this).val());
            });
            $("#sum").html(sum); 
        });                              
    });    
请告诉我为什么它不工作

编辑:HTML代码

<td><input type="hidden" class="absclass" id="txtsp<?php echo $p; ?>" value=""/></td>

如果这些字段中的每一个都包含一个值(我假设是数字加字符),则可以使用parseInt获取数值:

$(document).ready(function() {
        $('#btn').on('click', function(e) {
            e.preventDefault();
   var sum = 0;
            $('.absclass').each(function() {
                sum += parseInt($(this).val());
            });
            $("#sum").html(sum); 
        });                              
    });  

如果这些字段中的每个字段都包含一个值(我假设是数字加字符),则可以使用parseInt获取数值:

$(document).ready(function() {
        $('#btn').on('click', function(e) {
            e.preventDefault();
   var sum = 0;
            $('.absclass').each(function() {
                sum += parseInt($(this).val());
            });
            $("#sum").html(sum); 
        });                              
    });  

您需要将该值解析为int。然后您可以检查该值是否为数字,如果是,则将其添加到sum中(在您的each中):


编辑:在看到您使用$.post填充数据后,请确保此函数的回调中包含代码i(因为只有在那里,您才能确保填充了数据并开始进行求和)。:

$.post(“matcheanswers.php”,{“txt1”:txt1,…},
功能(数据){
var obj=$.parseJSON(数据);
$('#txtspan').html(obj[]);
$('#txtsp').val(obj[]);
var总和=0;
$('.absclass')。每个(函数(){
var val=parseInt($(this.val());
如果(!isNaN(val)){
sum+=val;
}
});
$(“#sum”).html(sum);
}
);

您需要将该值解析为整数。然后您可以检查该值是否为数字,如果是,则将其添加到总和中(在每个值中):


编辑:在看到您使用$.post填充数据后,请确保此函数的回调中包含代码i(因为只有在那里,您才能确保填充了数据并开始进行求和)。:

$.post(“matcheanswers.php”,{“txt1”:txt1,…},
功能(数据){
var obj=$.parseJSON(数据);
$('#txtspan').html(obj[]);
$('#txtsp').val(obj[]);
var总和=0;
$('.absclass')。每个(函数(){
var val=parseInt($(this.val());
如果(!isNaN(val)){
sum+=val;
}
});
$(“#sum”).html(sum);
}
);

这是一把小提琴:


您的jquery版本是什么?因为
live()
已被弃用

这里有一个可用的小提琴:


您的jquery版本是什么?因为
live()
不推荐使用

  $('#btn').on('click', function(e) {
        e.preventDefault();
        var sum = 0;
        $('.absclass').each(function() {
            var num = Number(this.value);
            if(!isNaN(num)){
                sum += num;
            }
        });
        $("#sum").html(sum); 
    });                              
});
$.post("matchanswers.php", {"txt1": txt1, "txt2": txt2, "txt3": txt3, "txt4": txt4, "txt5": txt5, "txt6": txt6, "textbox1": textbox1, "textbox2": textbox2, "textbox3": textbox3, "textbox4": textbox4, "textbox5": textbox5, "textbox6": textbox6}, 
    function(data) {
        var obj = $.parseJSON(data);
        for (var k = 1; k < 7; k++) { 
            $('#txtspan'+k).html(obj[k]);
            $('#txtsp'+k).val(obj[k]);
        }
        var sum = 0;
        $('.absclass').each(function() {
            var val = Number($(this).val());
            if (!isNaN(val)) {
                sum += val;
            }
        });
        $("#sum").html(sum);
    }
);

试试这样的

  $('#btn').on('click', function(e) {
        e.preventDefault();
        var sum = 0;
        $('.absclass').each(function() {
            var num = Number(this.value);
            if(!isNaN(num)){
                sum += num;
            }
        });
        $("#sum").html(sum); 
    });                              
});
$.post("matchanswers.php", {"txt1": txt1, "txt2": txt2, "txt3": txt3, "txt4": txt4, "txt5": txt5, "txt6": txt6, "textbox1": textbox1, "textbox2": textbox2, "textbox3": textbox3, "textbox4": textbox4, "textbox5": textbox5, "textbox6": textbox6}, 
    function(data) {
        var obj = $.parseJSON(data);
        for (var k = 1; k < 7; k++) { 
            $('#txtspan'+k).html(obj[k]);
            $('#txtsp'+k).val(obj[k]);
        }
        var sum = 0;
        $('.absclass').each(function() {
            var val = Number($(this).val());
            if (!isNaN(val)) {
                sum += val;
            }
        });
        $("#sum").html(sum);
    }
);
.live()方法已被弃用(jQuery 1.7)。请改用.on()


总数:
$(文档).ready(函数(){
$('#btn')。在('click',函数(e)上{
e、 预防默认值();
var总和=0;
$('.absclass')。每个(函数(){
sum+=数字($(this.val());
});
$(“#sum”).html(sum);
});                              
});    
不推荐使用.live()方法(jQuery 1.7)。请改用.on()


总数:
$(文档).ready(函数(){
$('#btn')。在('click',函数(e)上{
e、 预防默认值();
var总和=0;
$('.absclass')。每个(函数(){
sum+=数字($(this.val());
});
$(“#sum”).html(sum);
});                              
});    
移动您的

var sum = 0;
$('.absclass').each(function() {
    var val = Number($(this).val());
    if (!isNaN(val)) {
        sum += val;
    }
});
$("#sum").html(sum);
像这样进行后期回调

  $('#btn').on('click', function(e) {
        e.preventDefault();
        var sum = 0;
        $('.absclass').each(function() {
            var num = Number(this.value);
            if(!isNaN(num)){
                sum += num;
            }
        });
        $("#sum").html(sum); 
    });                              
});
$.post("matchanswers.php", {"txt1": txt1, "txt2": txt2, "txt3": txt3, "txt4": txt4, "txt5": txt5, "txt6": txt6, "textbox1": textbox1, "textbox2": textbox2, "textbox3": textbox3, "textbox4": textbox4, "textbox5": textbox5, "textbox6": textbox6}, 
    function(data) {
        var obj = $.parseJSON(data);
        for (var k = 1; k < 7; k++) { 
            $('#txtspan'+k).html(obj[k]);
            $('#txtsp'+k).val(obj[k]);
        }
        var sum = 0;
        $('.absclass').each(function() {
            var val = Number($(this).val());
            if (!isNaN(val)) {
                sum += val;
            }
        });
        $("#sum").html(sum);
    }
);
$.post(“matcheanswers.php”,{“txt1”:txt1,“txt2”:txt2,“txt3”:txt3,“txt4”:txt4,“txt5”:txt5,“txt6”:txt6,“textbox1”:textbox1,“textbox2”:textbox2,“textbox3”:textbox3,“textbox4”:textbox4,“textbox5”:textbox5,“textbox6”:textbox6},
功能(数据){
var obj=$.parseJSON(数据);
对于(var k=1;k<7;k++){
$('#txtspan'+k).html(obj[k]);
$('#txtsp'+k).val(obj[k]);
}
var总和=0;
$('.absclass')。每个(函数(){
var val=Number($(this.val());
如果(!isNaN(val)){
sum+=val;
}
});
$(“#sum”).html(sum);
}
);
在您的代码中,在从服务器获取答案并为隐藏字段设置值之前,请尝试计算总和
还可以查看有关函数的更多信息,它发送异步请求

移动您的

var sum = 0;
$('.absclass').each(function() {
    var val = Number($(this).val());
    if (!isNaN(val)) {
        sum += val;
    }
});
$("#sum").html(sum);
像这样进行后期回调

  $('#btn').on('click', function(e) {
        e.preventDefault();
        var sum = 0;
        $('.absclass').each(function() {
            var num = Number(this.value);
            if(!isNaN(num)){
                sum += num;
            }
        });
        $("#sum").html(sum); 
    });                              
});
$.post("matchanswers.php", {"txt1": txt1, "txt2": txt2, "txt3": txt3, "txt4": txt4, "txt5": txt5, "txt6": txt6, "textbox1": textbox1, "textbox2": textbox2, "textbox3": textbox3, "textbox4": textbox4, "textbox5": textbox5, "textbox6": textbox6}, 
    function(data) {
        var obj = $.parseJSON(data);
        for (var k = 1; k < 7; k++) { 
            $('#txtspan'+k).html(obj[k]);
            $('#txtsp'+k).val(obj[k]);
        }
        var sum = 0;
        $('.absclass').each(function() {
            var val = Number($(this).val());
            if (!isNaN(val)) {
                sum += val;
            }
        });
        $("#sum").html(sum);
    }
);
$.post(“matcheanswers.php”,{“txt1”:txt1,“txt2”:txt2,“txt3”:txt3,“txt4”:txt4,“txt5”:txt5,“txt6”:txt6,“textbox1”:textbox1,“textbox2”:textbox2,“textbox3”:textbox3,“textbox4”:textbox4,“textbox5”:textbox5,“textbox6”:textbox6},
功能(数据){
var obj=$.parseJSON(数据);
对于(var k=1;k<7;k++){
$('#txtspan'+k).html(obj[k]);
$('#txtsp'+k).val(obj[k]);
}
var总和=0;
$('.absclass')。每个(函数(){
var val=Number($(this.val());
如果(!isNaN(val)){
sum+=val;
}
});
$(“#sum”).html(sum);
}
);
在您的代码中,在从服务器获取答案并为隐藏字段设置值之前,请尝试计算总和

还可以查看有关函数的更多信息,它发送异步请求

不工作是什么意思?我得到的总和仅0显示您的html以及隐藏字段的值为空?一些建议:请停止使用
live
bind
…不工作是什么意思?我得到的总和仅0显示给我们y我们的html以及您的隐藏字段的值为空?一些建议:请停止使用
live
bind
…如果我使用parseInt,它将显示NaN。为此,我使用了isNaN。这也不起作用检查firebug中的输入字段是否真的包含任何值?我肯定它是空的,这就是它显示NaN的原因。不要放弃et将基数传递给parseInt函数
parseInt(number,base)
如果我使用的是parseInt,它将显示NaN.For