0

我真的可以帮你!我需要汇总动态数量的文本框,但我的 JavaScript 知识是每周完成此任务的方式。任何人都可以帮助我吗?我希望该函数在名为 inptSum 的 p-tag 中打印总和。

这是一个函数和html代码:

function InputSum() {
    ...
}

<table id="tbl">
<tbody>
    <tr>
        <td align="right">
            <span>June</span>
        </td>
        <td>
            <input name="month_0" type="text" value="0" id="month_0" onchange="InputSum()" />
        </td>
    </tr>
    <tr>
        <td align="right">
            <span>July</span>
        </td>
        <td>
            <input name="month_1" type="text" value="0" id="month_1" onchange="InputSum()" />
        </td>
    </tr>
    <tr>
        <td align="right">
            <span>August</span>
        </td>
        <td>
            <input name="month_2" type="text" value="0" id="month_2"  onchange="InputSum()" />
        </td>
    </tr>
    <tr>
        <td align="right">
            <span>September</span>
        </td>
        <td>
            <input name="month_3" type="text" value="0" id="month_3" onchange="InputSum()" />
        </td>
    </tr>
    </tbody>
</table>

<p id="inputSum"></p>
4

3 回答 3

1
function InputSum() {
    var inputs = document.getElementsByTagName("input"); 
    for (var i = 0; i < inputs.length; i++) { 
        if(inputs[i].id.indexOf("month_") == 0) 
            alert(inputs[i].value); 
    }
}
于 2012-08-08T09:42:42.363 回答
0
function InputSum() {
   var month_0=document.getElementById("month_0").value;// get value from textbox
  var month_1=document.getElementById("month_1").value;
  var month_2=document.getElementById("month_2").value;
   var month_3=document.getElementById("month_3").value;
   // check number Can be omitted the

   alert(month_0+month_1+month_2+month_3);//show result 
}

于 2012-08-08T09:46:42.483 回答
0

使用一点 jQuery,您可以很容易地做到这一点,使用以选择器开头的属性。然后我们遍历它们,将它们的值解析为整数并将它们相加。像这样的东西:

function InputSum() {
    var sum = 0;
    $('input[id^="month_"]').each(function () {
        sum += parseInt($(this).val(), 10);
    });
    $("#inputSum").text(sum);
}

如果您将代码修改为以下内容,您甚至可以摆脱每个输入的 onchange 属性:

$(function () {
    var elms = $('input[id^="month_"]');
    elms.change(function() {
        var sum = 0;
        elms.each(function () {
            sum += parseInt($(this).val(), 10);
        });
        $("#inputSum").text(sum);
    });
});
于 2012-08-08T09:56:47.107 回答