javascript - 计算输入字段的动态数量之间的百分比

标签 javascript jquery model-view-controller

我需要显示每个输入值占完整数据集的百分比。

因此,如果用户输入 3、2 和 1。“百分比”输入字段应显示“50、30 和 20”

问题是,我不知道表单将获得多少输入。它可以是从 1 到任何数字。

源 html 代码是由我创建的局部 View 创建的。输出是:

<table>
    <tr>
        <th>Name</th><th>Distributiob key</th><th>Percent</th>
    </tr>

<tr>
    <td>
        House 1
    </td>
    <td>
        <input type="text" size="5" value="0" id="LightPhysicalEntities_0__DistributionKey" name="LightPhysicalEntities[0].DistributionKey" />
    </td>
    <td>
        <input type="text"  size="5" id="LightPhysicalEntities_0__Percent" readonly=readonly />
    </td>
</tr>
<tr>
    <td>
        House 2
    </td>
    <td>
        <input type="text" size="5" value="0" id="LightPhysicalEntities_1__DistributionKey" name="LightPhysicalEntities[1].DistributionKey" />
    </td>
    <td>
        <input type="text"  size="5" id="LightPhysicalEntities_1__Percent" readonly=readonly />
    </td>
</tr>
<tr>
    <td>
        House 3
    </td>
    <td>
        <input type="text" size="5" value="0" id="LightPhysicalEntities_2__DistributionKey" name="LightPhysicalEntities[2].DistributionKey" />
    </td>
    <td>
        <input type="text"  size="5" id="LightPhysicalEntities_2__Percent" readonly=readonly />
    </td>
</tr>

表中的第一个字段是标题或名称。二是用户在哪里打分配号。第三个是带有计算百分比的只读字段。

计算应该在 javascript 中完成,但我不太清楚如何开始、获取输入和设置输出。

最佳答案

这样的函数应该会有所帮助(这会降低百分比 - 如果您想以不同的方式处理,请替换 Math.floor):

function calcPcts() {
    var distributions = $("[id$=DistributionKey]");

    // Get the base first
    var base = 0;
    distributions.each(function () {
        base += window.parseInt($(this).val(), 10);
    });

    // Now calculate the percentages of the individual ones
    distributions.each(function () {
        var input = $(this),
            val = window.parseInt($(this).val(), 10),
            pct = (val === 0) ? val : Math.floor((val / base) * 100);
        $("#" + input.attr("id").replace("DistributionKey", "Percent")).val(pct);
    });
}

关于javascript - 计算输入字段的动态数量之间的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8431370/

相关文章:

javascript - 如何使用 JavaScript 将数字限制在最小值/最大值之间?

javascript - css背景图片上的onclick事件?

php - jQuery 序列化从 MySQL 动态创建的复选框

model-view-controller - 在 ASP.NET MVC2 中使用带有部分 View 的模型的正确方法是什么?

java - 服务器遇到内部错误,无法满足此请求。 java.lang.NullPointerException

.NET MVC + 敏感数据

javascript - Highcharts 稀疏数据 - 隐藏空值

javascript - 隐藏 <canvas> 元素

javascript - 如何调试 jQuery/JavaScript 冲突?

javascript - 图像未填满行尾